44
Thread Thread, SMP, , SMP, dan dan Microkernel Microkernel (P t k (P t k 6) 6) (Pertemuan ke (Pertemuan ke-6) 6) Agustus 2010

Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

ThreadThread, SMP,, SMP,dandan

MicrokernelMicrokernel(P t k(P t k 6)6)(Pertemuan ke(Pertemuan ke--6)6)

Agustus 2010

Page 2: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Bahasan:Bahasan:

Proses dan ThreadSMP SMP

Microkernel Microkernel Bedah OS: Bedah OS: Windows Solaris Li

Sistem Operasi/20100830 #2

Linux

Page 3: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

AgendaAgenda::gg

• Proses dan Thread– Multithreading– Fungsionalitas thread

• Status thread• Status thread• Sinkronisasi thread

– Contoh aplikasi: Adobe PageMakerJenis thread:– Jenis thread:

• User-Level Thread (ULT)• Kernel-Level Thread (KLT)

Kombinasi ULT dan KLT• Kombinasi ULT dan KLT– Model thread lainnya

• Relasi Satu ke BanyakR l i B k k B k• Relasi Banyak ke Banyak

• SMP• Microkernel• Bedah OS

Sistem Operasi/20100830 #3

Page 4: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Konsep ProsesKonsep Prosespp• Kepemilikan resource:

– Process memerlukan ruang alamat virtual untuk menyimpan process image

– Process image = program + data + stack + PCBProcess image = program + data + stack + PCB– Unit terkecil yang dapat memiliki resource adalah proses atau

task– Resource = memori, I/O channel, I/O device, file, CPU, dll

• Penjadualan/eksekusi:Mengikuti jalur eksekusi (trace)– Mengikuti jalur eksekusi (trace)

– Eksekusi suatu proses bisa secara interleaving (selang-seling) dengan proses lain

– Thread = pecahan dari suatu proses yang dapat dijadualkan atau dieksekusi = lightweight process (LWP)

Sistem Operasi/20100830 #4

Page 5: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

MultithreadingMultithreading (1)(1)gg• Merupakan kemampuan sistem operasi dalam p p p

mengeksekusi banyak thread yang berasal dari sebuah prosesOS t di i l• OS tradisional:– Satu proses hanya terdiri dari satu thread

MS DOS: hanya satu proses dan tiap proses hanya– MS-DOS: hanya satu proses dan tiap proses hanya satu thread

– UNIX tradisional: banyak proses, tetapi tiap proses h t th dhanya satu thread

• OS modern:Banyak proses dan tiap proses terdiri dari banyak– Banyak proses dan tiap proses terdiri dari banyak thread

– Misal: Windows, Solaris, Linux, Mach, dan OS/2, , , ,

Sistem Operasi/20100830 #5

Page 6: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

MultithreadingMultithreading (2)(2)MultithreadingMultithreading (2)(2)

Sistem Operasi/20100830 #6

Page 7: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Apa yang dimiliki oleh Apa yang dimiliki oleh ThreadThread ??p y gp y g

• Status eksekusi thread (running, ready,Status eksekusi thread (running, ready,dll.)

• Simpanan konteks thread (pada saat tidakSimpanan konteks thread (pada saat tidak running)

• Stack eksekusiStack eksekusi• Beberapa storage statis untuk menyimpan

variabel lokalvariabel lokal• Hak akses ke memori dan resource yang

dimiliki oleh prosesdimiliki oleh proses– Memori dan resource digunakan bersama-

sama oleh semua thread dari sebuah prosessama oleh semua thread dari sebuah proses (share)

Sistem Operasi/20100830 #7

Page 8: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

ModelModel ThreadThreadModel Model ThreadThread

• Thread Control Block (TCB) = isi register + prioritas + info threadlainnya

Sistem Operasi/20100830 #8

Page 9: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Threads sharingThreads sharinggg

• Thread menempati ruang alamat memori yangThread menempati ruang alamat memori yang sama

• Tiap thread dapat mengakses data yang samaTiap thread dapat mengakses data yang sama• Jika suatu thread mengubah data di memori,

maka thread yang lain dapat mengetahuimaka thread yang lain dapat mengetahui perubahan data tersebut

• Jika sebuah thread sedang membuka suatu file,Jika sebuah thread sedang membuka suatu file, maka thread yang lain juga dapat membaca isi file tersebut

Sistem Operasi/20100830 #9

Page 10: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Apa Manfaat Apa Manfaat ThreadThread ??pp

• Pembentukan suatu thread jauh lebih cepatPembentukan suatu thread jauh lebih cepat daripada pembentukan proses baru – Penelitian menunjukkan pembentukan thread 10x j p

lebih cepat daripada pembentukan proses• Terminasi suatu thread jauh lebih cepat daripada

terminasi proses• Perpindahan eksekusi antar thread jauh lebih

cepat• Antar thread dapat berkomunikasi tanpa

l b k k lmelibatkan kernel– Sebagai efek dari penggunaan share memori dan file

Sistem Operasi/20100830 #10

Page 11: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

ContohContoh Penggunaan Penggunaan ThreadThread (1)(1)gggg

• Aktifitas foreground dan backgroundAktifitas foreground dan background– MS Excell: tiap satu tugas dilakukan oleh satu thread:

• Tampilkan menu• Baca inputan dari user• Eksekusi perintah user• Update data• Update data

• Pemrosesan Asynchronous– MS Word: proteksi data jika listrik tiba-tiba padamMS Word: proteksi data jika listrik tiba tiba padam

• Ada thread yang tugasnya khusus untuk melakukan penyimpanan data dari RAM ke harddisk secara periodikJ d l h d l dik d lik l h i i• Jadual thread langsung dikendalikan oleh sistem operasi

Sistem Operasi/20100830 #11

Page 12: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

ContohContoh Penggunaan Penggunaan ThreadThread (2)(2)gggg

• Percepatan eksekusiPercepatan eksekusi– Ada thread yang bertugas melakukan pengolahan

data dan dalam waktu bersamaan ada thread yang bertugas mengambil data berikutnya yang akan diolah

– File serverSetiap ada request dari user dibentuk sebuah thread baru• Setiap ada request dari user dibentuk sebuah thread baru

• Bila request telah selesai, maka thread diterminasi

• Struktur program ModularStruktur program Modular– Thread diterapkan pada aplikasi dengan berbagai

macam aktifitas dan bermacam-macam input dan output

Sistem Operasi/20100830 #12

Page 13: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Bagaimana OS mengatur Bagaimana OS mengatur ThreadThread ??

• Level thread:Level thread:– Eksekusi setiap thread diatur dengan

penjadualanpenjadualan• Level proses:

S t di d k– Suatu proses yang di-suspend akan menyebabkan semua thread proses tersebut juga di suspend bersama samajuga di-suspend bersama-sama• Sebagai konsekuensi dari penggunaan ruang

memori bersama (share)memori bersama (share)– Terminasi suatu proses akan berakibat semua

threadnya juga diterminasithreadnya juga diterminasi

Sistem Operasi/20100830 #13

Page 14: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Apakah status Thread sama denganApakah status Thread sama denganstatus Proses ?status Proses ?status Proses ?status Proses ?

• Mirip (ready, running, blocked), kecuali status p ( y, g, ),suspend

• Operasi pada thread:– Spawn = pembentukan thread

• Otomatis thread terbentuk saat proses terbentuk• Thread bisa dibentuk oleh thread lain dalam satu prosesThread bisa dibentuk oleh thread lain dalam satu proses• Thread baru berada pada antrian ready

– BlockTh d dibl k bil t t• Thread diblok bila menunggu suatu event

• Register user, PC, dan stack pointer disimpan– Unblock

• Bila event datang thread menjadi ready– Finish

• Tugas thread telah selesai register dan stack dihapus• Tugas thread telah selesai register dan stack dihapus

Sistem Operasi/20100830 #14

Page 15: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Remote Procedure Call (RPC)Remote Procedure Call (RPC) dengandenganSingle ThreadSingle Thread padapada UniprocessorUniprocessor

• RPC merupakan cara berinteraksi antara 2 buah program di k k i d i /b b d d

Single Thread Single Thread padapada UniprocessorUniprocessor

yang dieksekusi pada mesin yang sama/berbeda dengan menggunakan semantik dan sintaks procedure call/return

• Keterangan gambar:– Sebuah program melakukan 2 buah RPC pada 2 buah host/server

berbeda untuk mendapatkan suatu hasil gabunganberbeda untuk mendapatkan suatu hasil gabungan– Kedua RPC harus dilakukan secara bergantian lama

Sistem Operasi/20100830 #15

Page 16: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Remote Procedure Call (RPC)Remote Procedure Call (RPC) dengandenganbanyakbanyak ThreadThread padapada UniprocessorUniprocessorbanyak banyak ThreadThread pada pada UniprocessorUniprocessor

• Request dari thread A dan thread B dapat dieksekusi hampir bersamaan pada server yang berbedabersamaan pada server yang berbeda

• Hasil lebih cepat dibanding hanya dengan single thread

Sistem Operasi/20100830 #16

Page 17: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

MultithreadingMultithreading pada pada UniprocessorUniprocessor

• Pada uniprogramming suatu thread bisa dieksekusi bila threadyang sedang dieksekusi ter-blok atau karena time outyang sedang dieksekusi ter-blok atau karena time out

• Mirip dengan prosesSistem Operasi/20100830 #17

Page 18: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Sinkronisasi Sinkronisasi ThreadThread

• Thread menggunakan ruang alamatThread menggunakan ruang alamat memori yang sama bila terjadi perubahan data pada suatu resource dapatperubahan data pada suatu resource dapat mempengaruhi thread yang lain

• Bagaimana agar antar thread tidak saling• Bagaimana agar antar thread tidak saling mengganggu dan tidak saling memperebutkan resource ?memperebutkan resource ?– Digunakan metode sinkronisasi yang mirip

d i k i i di k ddengan sinkronisasi yang digunakan pada proses

Sistem Operasi/20100830 #18

Page 19: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

AgendaAgenda::gg

• Proses dan Thread– Multithreading– Fungsionalitas thread

• Status threadStatus thread• Sinkronisasi thread

– Contoh aplikasi: Adobe PageMakerJenis thread:– Jenis thread:

• User-Level Thread (ULT)• Kernel-Level Thread (KLT)• Kombinasi ULT dan KLT• Kombinasi ULT dan KLT

– Model thread lainnya• Relasi Satu ke Banyak

Relasi Banyak ke Banyak• Relasi Banyak ke Banyak• SMP• Microkernel• Bedah OS

Sistem Operasi/20100830 #19

Page 20: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Contoh aplikasi multithread:Contoh aplikasi multithread:Adobe PageMakerAdobe PageMakerAdobe PageMakerAdobe PageMaker• Adobe PageMaker

k lik i kmerupakan aplikasi untuk menulis, merancang, dan menghasilkan desktopmenghasilkan desktop publishing

• Aplikasi berjalan pada shared dsystem pada sistem operasi

OS/2• Terdiri dari 3 thread yang• Terdiri dari 3 thread yang

selalu aktif: – Service thread– Event-handling thread– Screen-redraw thread

Sistem Operasi/20100830 #20

Page 21: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Mengapa Adobe PageMaker dirancangMengapa Adobe PageMaker dirancangterdiri dari beberapaterdiri dari beberapa ThreadThread ??terdiri dari beberapa terdiri dari beberapa ThreadThread ??

• Sistem operasi OS/2 kurang responsifSistem operasi OS/2 kurang responsifdalam menangani window (jendela) jika terdapat data (message) masuk yangterdapat data (message) masuk yang memerlukan pemrosesan serius

Aplikasi yang memanggil subroutine untuk– Aplikasi yang memanggil subroutine untuk nge-print akan menyebabkan data (message) yang dibutuhkan oleh aplikasi lain terlambatyang dibutuhkan oleh aplikasi lain terlambat diterima performansi menurun

– Solusi pada Adobe PageMaker:Solusi pada Adobe PageMaker:• Beberapa operasi yang memerlukan banyak waktu

ditangani oleh service thread (initialization, import, g ( , p ,autoflow, dan printing)

Sistem Operasi/20100830 #21

Page 22: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

AgendaAgenda::gg

• Proses dan Thread– Multithreading– Fungsionalitas thread

• Status threadStatus thread• Sinkronisasi thread

– Contoh aplikasi: Adobe PageMaker– Jenis thread:– Jenis thread:

• User-Level Thread (ULT)• Kernel-Level Thread (KLT)• Kombinasi ULT dan KLT• Kombinasi ULT dan KLT

– Model thread lainnya• Relasi Satu ke Banyak• Relasi Banyak ke Banyak• Relasi Banyak ke Banyak

• SMP• Microkernel

B d h OS• Bedah OS

Sistem Operasi/20100830 #22

Page 23: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Jenis Jenis ThreadThread

• User-Level Thread (ULT)User Level Thread (ULT)– Semua manajemen thread dilakukan oleh

program aplikasip g p– Tidak ada code program untuk mengatur

thread pada program kernel• Kernel-Level Thread (KLT)

= kernel supported threads = lightweight process

– Semua manajemen thread dilakukan oleh kernelkernel

– Tidak ada code program untuk mengatur thread pada program aplikasithread pada program aplikasi

Sistem Operasi/20100830 #23

Page 24: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

UserUser--Level Thread (ULT)Level Thread (ULT) (1)(1)( )( )• Jumlah thread sudah

direncanakan sejak membuatdirencanakan sejak membuat program aplikasi

• Terdapat thread library pada kode p y pprogram

• Relasi antara thread user:thread kernel adalah M:1

M b t k d h th d

kernel adalah M:1• Isi thread library adalah kode

program untuk:– Membentuk dan menghapus thread– Melewatkan pesan dan data antar thread– Menjadualkan eksekusi threadj– Menyimpan dan mengambil konteks thread

• Contoh OS: POSIX (Pthread) Mach (C thread) dan• Contoh OS: POSIX (Pthread), Mach (C-thread), dan Solaris 2 (UI-thread)

Sistem Operasi/20100830 #24

Page 25: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

UserUser--Level Thread (ULT)Level Thread (ULT) (2)(2)( )( )

• Prosedur eksekusi ULTProsedur eksekusi ULT– Mula-mula program aplikasi dieksekusi hanya dengan

satu thread– Pada saat aplikasi tersebut dieksekusi thread

berikutnya dibuat (bila diperlukan)Pembuatan thread baru dilakukan dengan cara memanggil• Pembuatan thread baru dilakukan dengan cara memanggil utility yang ada di thread library

• Pada saat library dieksekusi konteks (user register, PC, dan t k i t ) th d d i di istack pointer) thread yang sedang running disimpan

– Thread library membuat struktur data baru untuk setiap thread yang dibentuksetiap thread yang dibentuk

• Setelah thread library selesai konteks thread yang akan dieksekusi diambil

Sistem Operasi/20100830 #25

Page 26: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Contoh hubungan antara status Contoh hubungan antara status ULTULTdengandengan status Prosesstatus Prosesdengan dengan status Prosesstatus Proses

Sistem Operasi/20100830 #26

Page 27: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Keterangan Keterangan (1)(1)gg

• Gambar a:Gambar a:– Proses B terdiri dari 2 thread (thread 1 dan thread 2)– Status proses B adalah running sama dengan status p g g

thread 2, sedangkan status thread 1 adalah ready• Gambar b:

– Proses B terblok akibat thread 2 yang sedang runningmelakukan system callSt t th d 2 ih t t b t t i dilih t– Status thread 2 masih tetap berstatus running dilihat dari sisi thread library

– Saat proses B kembali running thread mana yangSaat proses B kembali running, thread mana yang akan dieksekusi ???

Sistem Operasi/20100830 #27

Page 28: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Keterangan Keterangan (2)(2)gg

• Gambar c: – Proses B berubah status dari running ke ready akibat

jatah waktunya telah habis– Status thread 1 dan thread 2 tidak berubah– Status thread 1 dan thread 2 tidak berubah– Thread 2 masih tetap berstatus running dilihat dari sisi

thread library– Saat proses B kembali running, thread mana yang akan

dieksekusi ???• Gambar d:• Gambar d:

– Eksekusi thread 2 telah sampai pada tahap dimana diperlukan hasil dari thread 1, maka status thread 2 berubah dari running menjadi blocked

– Giliran eksekusi diberikan pada thread 1Status proses B tetap running– Status proses B tetap running

Sistem Operasi/20100830 #28

Page 29: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

KelebihanKelebihan ULT dibanding KLTULT dibanding KLT

• Pergantian thread (thread switching) tidakPergantian thread (thread switching) tidak melibatkan kernel, sehingga overhead akibat perubahan 2 buah mode switch (user ke kerneldan kernel ke user) dapat dihindari

• Algoritma penjadualan eksekusi thread suatu aplikasi bisa berbeda dengan aplikasi yang lain– Lebih fleksibel– Tidak tergantung dengan algoritma penjadualan untuk

prosesULT dapat dijalankan pada sistem ope asi• ULT dapat dijalankan pada sistem operasi berbeda-beda, karena tidak bergantung pada kernelkernel

Sistem Operasi/20100830 #29

Page 30: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

KekuranganKekurangan ULT dibanding KLTULT dibanding KLTgg gg

• Jika sebuah thread pada sebuah prosesJika sebuah thread pada sebuah proses melakukan system call akan menyebabkan semua thread pada proses tersebut tidaksemua thread pada proses tersebut tidak dapat dieksekusi (semua terhenti)

• Penggunaan multiprocessor tidak dapat• Penggunaan multiprocessor tidak dapat dimanfaatkan secara maksimal

l k l h k– Dalam satu saat kernel hanya mengijinkan satu thread saja yang dapat dieksekusi untuk setiap prosessetiap proses

Sistem Operasi/20100830 #30

Page 31: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

SolusiSolusi terhadap kekurangan ULTterhadap kekurangan ULT

• Aplikasi dipecah-pecah menjadi banyak proses, setiap satu proses satu thread sajaproses satu thread saja– Kerugian: overhead akibat mode switching meningkat– Apa manfaat solusi ini ?Apa manfaat solusi ini ?

• Mengubah system call yang menyebabkan proses terblok menjadi system call yang tidak menyebabkan proses

bl kterblok– Ada routine yang khusus untuk memeriksa status I/O device

sibuk atau tidak (disebut dengan jacket routine)sibuk atau tidak (disebut dengan jacket routine)– Thread yang memerlukan I/O device cukup memanggil jacket

routine– Bila I/O sibuk, thread masuk ke status blocked dan giliran

eksekusi diberikan pada thread lainnya (status proses tetap running)g)

– Demikian seterusnya hingga didapatkan status I/O device ready

Sistem Operasi/20100830 #31

Page 32: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

AgendaAgenda::gg

• Proses dan Thread– Multithreading– Fungsionalitas thread

• Status threadStatus thread• Sinkronisasi thread

– Contoh aplikasi: Adobe PageMaker– Jenis thread:– Jenis thread:

• User-Level Thread (ULT)• Kernel-Level Thread (KLT)• Kombinasi ULT dan KLT• Kombinasi ULT dan KLT

– Model thread lainnya• Relasi Satu ke Banyak• Relasi Banyak ke Banyak• Relasi Banyak ke Banyak

• SMP• Microkernel

B d h OS• Bedah OS

Sistem Operasi/20100830 #32

Page 33: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

KernelKernel--Level Thread (KLT)Level Thread (KLT)( )( )• Jumlah thread sudah

direncanakan sejak membuat program aplikasi

• Kernel menangani isi konteks• Kernel menangani isi konteks proses dan setiap thread

• Penjadualan bukan berbasis jpada proses tetapi berbasis pada thread

• Relasi antara thread user :• Relasi antara thread user : thread kernel adalah 1:1

• Model KLT digunakan padaModel KLT digunakan pada sistem operasi Windows NT, Windows 2000, Solaris 2, BeOS Tru64 UNIX OS/2BeOS, Tru64 UNIX, OS/2

Sistem Operasi/20100830 #33

Page 34: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

KelebihanKelebihan KLT dibanding ULTKLT dibanding ULTgg

• Thread-thread yang berasal dari sebuahThread thread yang berasal dari sebuah proses dapat dieksekusi pada prosesor berbeda secara bersamaanberbeda secara bersamaan

• Thread yang melakukan service call tidak menyebabkan proses terblok threadmenyebabkan proses terblok, threadlainnya dalam satu proses masih dapat dieksekusidieksekusi

• Routine kernel dapat terdiri dari banyak thread

Sistem Operasi/20100830 #34

Page 35: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

KekuranganKekurangan KLT dibanding ULTKLT dibanding ULT

• Perpindahan eksekusi dari satu thread kePerpindahan eksekusi dari satu thread ke thread lainnya menyebabkan overheadakibat mode switchakibat mode switch

• Algoritma penjadualan eksekusi suatu aplikasi harus mengikuti algoritmaaplikasi harus mengikuti algoritma penjadualan sistem operasi

d k fl k b l– Tidak fleksibel• KLT tidak dapat dijalankan pada sistem p j p

operasi berbeda-beda, karena tergantung pada kernel masing-masingp g g

Sistem Operasi/20100830 #35

Page 36: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Perbandingan Perbandingan LatencyLatency ((µS) antaraµS) antara ULT,ULT,KLT danKLT dan Single Process/threadSingle Process/thread (1)(1)KLT, dan KLT, dan Single Process/threadSingle Process/thread (1)(1)

• Hasil diperoleh dengan uniprocessor VAX dan sistem operasi UNIX-likep

• Benchmark yang digunakan:– Null Fork

W k di l k k b j d lk• Waktu yang diperlukan untuk membuat, menjadualkan, mengeksekusi sebuah proses/thread yang memanggil prosedur null secara lengkap

• Prosedur null = prosedur fork (membuat proses/thread baru)• Prosedur null = prosedur fork (membuat proses/thread baru)– Signal-Wait

• Waktu yang diperlukan oleh sebuah proses/thread untuk memberi i l d /th d d k di isignal pada proses/thread yang sedang menunggu kondisi

Sistem Operasi/20100830 #36

Page 37: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Perbandingan Perbandingan LatencyLatency ((µS) antaraµS) antara ULT,ULT,KLT danKLT dan Single Process/threadSingle Process/thread (2)(2)KLT, dan KLT, dan Single Process/threadSingle Process/thread (2)(2)

• Analisis:Analisis:– Latency pada KLT jauh lebih baik daripada

latency pada sebuah proses/thread tunggallatency pada sebuah proses/thread tunggal– Latency pada ULT jauh lebih baik daripada

latency pada KLTlatency pada KLT– Hasil bergantung pada jenis aplikasi yang

diujikandiujikan– Bila digunakan aplikasi yang lebih banyak

memerlukan kernel mode bisa jadi KLT lebihmemerlukan kernel mode bisa jadi KLT lebih baik daripada ULT• Dapat menjadi peluang/ide untuk TA ?!?!Dapat menjadi peluang/ide untuk TA ?!?!

Sistem Operasi/20100830 #37

Page 38: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

AgendaAgenda::gg

• Proses dan Thread– Multithreading– Fungsionalitas thread

• Status threadStatus thread• Sinkronisasi thread

– Contoh aplikasi: Adobe PageMaker– Jenis thread:– Jenis thread:

• User-Level Thread (ULT)• Kernel-Level Thread (KLT)• Kombinasi ULT dan KLT• Kombinasi ULT dan KLT

– Model thread lainnya• Relasi Satu ke Banyak• Relasi Banyak ke Banyak• Relasi Banyak ke Banyak

• SMP• Microkernel

B d h OS• Bedah OS

Sistem Operasi/20100830 #38

Page 39: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Kombinasi ULT dan KLTKombinasi ULT dan KLT• Pembentukan thread dilakukan

d lik i ( )pada aplikasi (user space)• Penjadualan dan sinkronisasi

dilakukan pada level aplikasidilakukan pada level aplikasi• Beberapa thread ULT dari

sebuah aplikasi dipetakan ke j l h th d KLTsejumlah thread KLT

(jumlahnya sama atau lebih kecil)ec )

• Relasi antara thread user : thread kernel adalah M:N

• Model kombinasi digunakan pada sistem operasi Solaris 2, IRIX, HP-UX, dan Tru64 UNIXIRIX, HP UX, dan Tru64 UNIX

Sistem Operasi/20100830 #39

Page 40: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

KelebihanKelebihan kombinasi ULT dan KLTkombinasi ULT dan KLT

• Programmer dapat mengatur jumlah KLTProgrammer dapat mengatur jumlah KLT berdasarkan aplikasi atau mesin yang akan digunakan untuk mendapatkan hasil optimum

• Beberapa thread dari sebuah aplikasi dapat dieksekusi secara bersamaan pada sistem multiprocessor

• Thread yang melakukan system call (perlu I/O device) tidak menyebabkan proses terblok

• Performansinya lebih baik dibanding ULT maupun KLT

Sistem Operasi/20100830 #40

Page 41: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Relasi antara Relasi antara ThreadThread dan Prosesdan Proses

• Macam-macam relasi antara thread:proses adalah sbb:

Sistem Operasi/20100830 #41

Page 42: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Relasi Satu ke Banyak (1:M)Relasi Satu ke Banyak (1:M)y ( )y ( )

• Satu thread dapat berpindah-pindah dari satu ruang alamat memori yang satu ke ruang alamat memori yangalamat memori yang satu ke ruang alamat memori yang lain– Bahkan bisa berpindah dari satu komputer ke komputer yang lain

• Digunakan pada sistem terdistribusi• Contoh sistem operasi: Clouds (Ra) dan Emerald• Dari sisi user thread dipandang sebagai unit aktifitas• Dari sisi user, thread dipandang sebagai unit aktifitas,

sedangkan proses merupakan ruang alamat virtual yang dilengkapi dengan PCB

f d b h d b d h• Informasi yang dibawa saat thread berpindah tempat adalah: controlling terminal, parameter global, dan petunjuk penjadualan (misal prioritas)p j p j ( p )

• Kelebihan:– User atau programmer tidak perlu tahu detail dari

lingkungan distribusi yang akan digunakanlingkungan distribusi yang akan digunakan

Sistem Operasi/20100830 #42

Page 43: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Relasi Banyak ke Banyak (M:N)Relasi Banyak ke Banyak (M:N)

• Digunakan konsep domain dan thread:g p– Domain: entitas statis yang terdiri dari ruang alamat

dan port sebagai pintu masuk/keluar pesanThread: eksekusi tunggal yang terdiri dari stack– Thread: eksekusi tunggal yang terdiri dari stack eksekusi, status prosesor, dan informasi penjadualan

• Banyak thread dapat dieksekusi ke dalam sebuahBanyak thread dapat dieksekusi ke dalam sebuah domain

• Sebuah thread dapat berpindah dari satu domaink d i l ike domain yang lain

• Diterapkan pada sistem operasi eksperimen TRIX

Sistem Operasi/20100830 #43

Page 44: Thread, SMP, dan Microkernel · 2018. 6. 13. · SMP Microkernel Bedah OS:Bedah OS: ... – Sebuah program melakukan 2 buah RPC pada 2 buah host/server berbeda untuk mendapatkan suatu

Referensi:Referensi:

[STA09] Stallings, William. 2009. Operating [ ] g , p gSystem: Internal and Design Principles. 6th edition. Prentice Hall

Sistem Operasi/20100830 #44