Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Thread, SMP, dan Microkernel (Pertemuan ke-5) Agustus 2010.

Presentasi serupa


Presentasi berjudul: "Thread, SMP, dan Microkernel (Pertemuan ke-5) Agustus 2010."— Transcript presentasi:

1 Thread, SMP, dan Microkernel (Pertemuan ke-5) Agustus 2010

2 Pokok Bahasan Pokok Bahasan: – Thread, SMP, dan Microkernel Sub Pokok Bahasan: –Multithreading –Fungsionalitas thread –Jenis-jenis thread TIU: –Mahasiswa dapat memahami konsep dasar Thread, SMP, dan Microkernel TIK: –Mahasiswa dapat menjelaskan prinsip multithreading –Mahasiswa dapat menjelaskan fungsionalitas thread –Mahasiswa dapat menjelaskan jenis-jenis thread

3 Sistem Operasi/ #3 Bahasan:  Proses dan Thread  SMP  Microkernel  Bedah OS:  Windows  Solaris  Linux

4 Agenda : Proses dan Thread –M–Multithreading –F–Fungsionalitas thread Status thread Sinkronisasi thread –C–Contoh aplikasi: Adobe PageMaker –J–Jenis thread: User-Level Thread (ULT) Kernel-Level Thread (KLT) Kombinasi ULT dan KLT –M–Model thread lainnya Relasi Satu ke Banyak Relasi Banyak ke Banyak SMP Microkernel Bedah OS Sistem Operasi/ #4

5 Konsep Proses Kepemilikan resource: –Process memerlukan ruang alamat virtual untuk menyimpan process image –Process 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) –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/ #5

6 Multithreading (1) Merupakan kemampuan sistem operasi dalam mengeksekusi banyak thread yang berasal dari sebuah proses OS tradisional: –Satu proses hanya terdiri dari satu thread –MS-DOS: hanya satu proses dan tiap proses hanya satu thread –UNIX tradisional: banyak proses, tetapi tiap proses hanya satu thread OS modern: –Banyak proses dan tiap proses terdiri dari banyak thread –Misal: Windows, Solaris, Linux, Mach, dan OS/2 Sistem Operasi/ #6

7 Multithreading (2) Sistem Operasi/ #7

8 Apa yang dimiliki oleh Thread ? Status eksekusi thread (running, ready, dll.) Simpanan konteks thread (pada saat tidak running) Stack eksekusi Beberapa storage statis untuk menyimpan variabel lokal Hak akses ke memori dan resource yang dimiliki oleh proses –Memori dan resource digunakan bersama- sama oleh semua thread dari sebuah proses (share) Sistem Operasi/ #8

9 Model Thread Thread Control Block (TCB) = isi register + prioritas + info thread lainnya Sistem Operasi/ #9

10 Threads sharing Thread menempati ruang alamat memori yang sama Tiap thread dapat mengakses data yang sama Jika suatu thread mengubah data di memori, maka thread yang lain dapat mengetahui perubahan data tersebut Jika sebuah thread sedang membuka suatu file, maka thread yang lain juga dapat membaca isi file tersebut Sistem Operasi/ #10

11 Apa keuntungan dari penerapanThread Pembentukan suatu thread jauh lebih cepat daripada pembentukan proses baru –Penelitian menunjukkan pembentukan thread 10x 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 melibatkan kernel –Sebagai efek dari penggunaan share memori dan file Sistem Operasi/ #11

12 Contoh Penggunaan Thread (1) Aktifitas foreground dan background –MS Excell: tiap satu tugas dilakukan oleh satu thread: Tampilkan menu Baca inputan dari user Eksekusi perintah user Update data Pemrosesan Asynchronous –MS Word: proteksi data jika listrik tiba-tiba padam Ada thread yang tugasnya khusus untuk melakukan penyimpanan data dari RAM ke harddisk secara periodik Jadual thread langsung dikendalikan oleh sistem operasi Sistem Operasi/ #12

13 Contoh Penggunaan Thread (2) Percepatan eksekusi –Ada thread yang bertugas melakukan pengolahan data dan dalam waktu bersamaan ada thread yang bertugas mengambil data berikutnya yang akan diolah –File server Setiap ada request dari user dibentuk sebuah thread baru Bila request telah selesai, maka thread diterminasi Struktur program Modular –Thread diterapkan pada aplikasi dengan berbagai macam aktifitas dan bermacam-macam input dan output Sistem Operasi/ #13

14 Bagaimana OS mengatur Thread ? Level thread: –Eksekusi setiap thread diatur dengan penjadualan Level proses: –Suatu proses yang di-suspend akan menyebabkan semua thread proses tersebut juga di-suspend bersama-sama Sebagai konsekuensi dari penggunaan ruang memori bersama (share) –Terminasi suatu proses akan berakibat semua threadnya juga diterminasi Sistem Operasi/ #14

15 Apakah status Thread sama dengan status Proses ? Mirip (ready, running, blocked), kecuali status suspend Operasi pada thread: –Spawn = pembentukan thread Otomatis thread terbentuk saat proses terbentuk Thread bisa dibentuk oleh thread lain dalam satu proses Thread baru berada pada antrian ready –Block 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 Sistem Operasi/ #15

16 RPC merupakan cara berinteraksi antara 2 buah program 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 gabungan –Kedua RPC harus dilakukan secara bergantian  lama Remote Procedure Call (RPC) dengan Single Thread pada Uniprocessor Sistem Operasi/ #16

17 Remote Procedure Call (RPC) dengan banyak Thread pada Uniprocessor Request dari thread A dan thread B dapat dieksekusi hampir bersamaan pada server yang berbeda Hasil lebih cepat dibanding hanya dengan single thread Sistem Operasi/ #17

18 Multithreading pada Uniprocessor Pada uniprogramming suatu thread bisa dieksekusi bila thread yang sedang dieksekusi ter-blok atau karena time out Mirip dengan proses Sistem Operasi/ #18

19 Sinkronisasi Thread Thread menggunakan ruang alamat memori yang sama  bila terjadi perubahan data pada suatu resource dapat mempengaruhi thread yang lain Bagaimana agar antar thread tidak saling mengganggu dan tidak saling memperebutkan resource ? –Digunakan metode sinkronisasi yang mirip dengan sinkronisasi yang digunakan pada proses Sistem Operasi/ #19

20 Agenda : Proses dan Thread –M–Multithreading –F–Fungsionalitas thread Status thread Sinkronisasi thread –C–Contoh aplikasi: Adobe PageMaker –J–Jenis thread: User-Level Thread (ULT) Kernel-Level Thread (KLT) Kombinasi ULT dan KLT –M–Model thread lainnya Relasi Satu ke Banyak Relasi Banyak ke Banyak SMP Microkernel Bedah OS Sistem Operasi/ #20

21 Contoh aplikasi multithread: Adobe PageMaker Adobe PageMaker merupakan aplikasi untuk menulis, merancang, dan menghasilkan desktop publishing Aplikasi berjalan pada shared system pada sistem operasi OS/2 Terdiri dari 3 thread yang selalu aktif: –Service thread –Event-handling thread –Screen-redraw thread Sistem Operasi/ #21

22 Mengapa Adobe PageMaker dirancang terdiri dari beberapa Thread ? Sistem operasi OS/2 kurang responsif dalam menangani window (jendela) jika terdapat data (message) masuk yang memerlukan pemrosesan serius –Aplikasi yang memanggil subroutine untuk nge-print akan menyebabkan data (message) yang dibutuhkan oleh aplikasi lain terlambat diterima  performansi menurun –Solusi pada Adobe PageMaker: Beberapa operasi yang memerlukan banyak waktu ditangani oleh service thread (initialization, import, autoflow, dan printing) Sistem Operasi/ #22

23 Agenda : Proses dan Thread –Multithreading –Fungsionalitas thread Status thread Sinkronisasi thread –Contoh aplikasi: Adobe PageMaker –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 Microkernel Bedah OS Sistem Operasi/ #23

24 Jenis Thread User-Level Thread (ULT) –Semua manajemen thread dilakukan oleh program aplikasi –Tidak ada code program untuk mengatur thread pada program kernel Kernel-Level Thread (KLT) = kernel supported threads = lightweight process –Semua manajemen thread dilakukan oleh kernel –Tidak ada code program untuk mengatur thread pada program aplikasi Sistem Operasi/ #24

25 User-Level Thread (ULT) (1) –Membentuk dan menghapus thread –Melewatkan pesan dan data antar thread –Menjadualkan eksekusi thread –Menyimpan dan mengambil konteks thread Contoh OS: POSIX (Pthread), Mach (C-thread), dan Solaris 2 (UI-thread) Jumlah thread sudah direncanakan sejak membuat program aplikasi Terdapat thread library pada kode program Relasi antara thread user:thread kernel adalah M:1 Isi thread library adalah kode program untuk: Sistem Operasi/ #25

26 User-Level Thread (ULT) (2) Prosedur 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 utility yang ada di thread library Pada saat library dieksekusi  konteks (user register, PC, dan stack pointer) thread yang sedang running disimpan –Thread library membuat struktur data baru untuk setiap thread yang dibentuk Setelah thread library selesai  konteks thread yang akan dieksekusi diambil Sistem Operasi/ #26

27 Contoh hubungan antara status ULT dengan status Proses Sistem Operasi/ #27

28 Keterangan (1) Gambar a: –Proses B terdiri dari 2 thread (thread 1 dan thread 2) –Status proses B adalah running sama dengan status thread 2, sedangkan status thread 1 adalah ready Gambar b: –Proses B terblok akibat thread 2 yang sedang running melakukan system call –Status thread 2 masih tetap berstatus running dilihat dari sisi thread library –Saat proses B kembali running, thread mana yang akan dieksekusi ??? Sistem Operasi/ #28

29 Keterangan (2) Gambar c: –Proses B berubah status dari running ke ready akibat jatah waktunya telah habis –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: –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 1 –Status proses B tetap running Sistem Operasi/ #29

30 Kelebihan ULT dibanding KLT Pergantian thread (thread switching) tidak melibatkan kernel, sehingga overhead akibat perubahan 2 buah mode switch (user ke kernel dan 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 proses ULT dapat dijalankan pada sistem operasi berbeda-beda, karena tidak bergantung pada kernel Sistem Operasi/ #30

31 Kekurangan ULT dibanding KLT Jika sebuah thread pada sebuah proses melakukan system call akan menyebabkan semua thread pada proses tersebut tidak dapat dieksekusi (semua terhenti) Penggunaan multiprocessor tidak dapat dimanfaatkan secara maksimal –Dalam satu saat kernel hanya mengijinkan satu thread saja yang dapat dieksekusi untuk setiap proses Sistem Operasi/ #31

32 Solusi terhadap kekurangan ULT Aplikasi dipecah-pecah menjadi banyak proses, setiap satu proses satu thread saja –Kerugian: overhead akibat mode switching meningkat –Apa manfaat solusi ini ? Mengubah system call yang menyebabkan proses terblok menjadi system call yang tidak menyebabkan proses terblok –Ada routine yang khusus untuk memeriksa status I/O device 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) –Demikian seterusnya hingga didapatkan status I/O device ready Sistem Operasi/ #32

33 Agenda : Proses dan Thread –Multithreading –Fungsionalitas thread Status thread Sinkronisasi thread –Contoh aplikasi: Adobe PageMaker –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 Microkernel Bedah OS Sistem Operasi/ #33

34 Kernel-Level Thread (KLT) Jumlah thread sudah direncanakan sejak membuat program aplikasi Kernel menangani isi konteks proses dan setiap thread Penjadualan bukan berbasis pada proses tetapi berbasis pada thread Relasi antara thread user : thread kernel adalah 1:1 Model KLT digunakan pada sistem operasi Windows NT, Windows 2000, Solaris 2, BeOS, Tru64 UNIX, OS/2 Sistem Operasi/ #34

35 Kelebihan KLT dibanding ULT Thread-thread yang berasal dari sebuah proses dapat dieksekusi pada prosesor berbeda secara bersamaan Thread yang melakukan service call tidak menyebabkan proses terblok, thread lainnya dalam satu proses masih dapat dieksekusi Routine kernel dapat terdiri dari banyak thread Sistem Operasi/ #35

36 Kekurangan KLT dibanding ULT Perpindahan eksekusi dari satu thread ke thread lainnya menyebabkan overhead akibat mode switch Algoritma penjadualan eksekusi suatu aplikasi harus mengikuti algoritma penjadualan sistem operasi –Tidak fleksibel KLT tidak dapat dijalankan pada sistem operasi berbeda-beda, karena tergantung pada kernel masing-masing Sistem Operasi/ #36

37 Perbandingan Latency (µS) antara ULT, KLT, dan Single Process/thread (1) Hasil diperoleh dengan uniprocessor VAX dan sistem operasi UNIX-like Benchmark yang digunakan: –Null Fork Waktu yang diperlukan untuk membuat, menjadualkan, mengeksekusi sebuah proses/thread yang memanggil prosedur null secara lengkap Prosedur null = prosedur fork (membuat proses/thread baru) –Signal-Wait Waktu yang diperlukan oleh sebuah proses/thread untuk memberi signal pada proses/thread yang sedang menunggu kondisi Sistem Operasi/ #37

38 Perbandingan Latency (µS) antara ULT, KLT, dan Single Process/thread (2) Analisis: –Latency pada KLT jauh lebih baik daripada latency pada sebuah proses/thread tunggal –Latency pada ULT jauh lebih baik daripada latency pada KLT –Hasil bergantung pada jenis aplikasi yang diujikan –Bila digunakan aplikasi yang lebih banyak memerlukan kernel mode bisa jadi KLT lebih baik daripada ULT Sistem Operasi/ #38

39 Agenda : Proses dan Thread –Multithreading –Fungsionalitas thread Status thread Sinkronisasi thread –Contoh aplikasi: Adobe PageMaker –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 Microkernel Bedah OS Sistem Operasi/ #39

40 Kombinasi ULT dan KLT Pembentukan thread dilakukan pada aplikasi (user space) Penjadualan dan sinkronisasi dilakukan pada level aplikasi Beberapa thread ULT dari sebuah aplikasi dipetakan ke sejumlah thread KLT (jumlahnya sama atau lebih kecil) Relasi antara thread user : thread kernel adalah M:N Model kombinasi digunakan pada sistem operasi Solaris 2, IRIX, HP-UX, dan Tru64 UNIX Sistem Operasi/ #40

41 Kelebihan kombinasi ULT dan KLT Programmer 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/ #41

42 Relasi antara Thread dan Proses Macam-macam relasi antara thread:proses adalah sbb: Sistem Operasi/ #42

43 Relasi Satu ke Banyak (1:M) Satu thread dapat berpindah-pindah dari satu ruang alamat 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, sedangkan proses merupakan ruang alamat virtual yang dilengkapi dengan PCB Informasi yang dibawa saat thread berpindah tempat adalah: controlling terminal, parameter global, dan petunjuk penjadualan (misal prioritas) Kelebihan: –User atau programmer tidak perlu tahu detail dari lingkungan distribusi yang akan digunakan Sistem Operasi/ #43

44 Relasi Banyak ke Banyak (M:N) Digunakan konsep domain dan thread: –Domain: entitas statis yang terdiri dari ruang alamat dan port sebagai pintu masuk/keluar pesan –Thread: eksekusi tunggal yang terdiri dari stack eksekusi, status prosesor, dan informasi penjadualan Banyak thread dapat dieksekusi ke dalam sebuah domain Sebuah thread dapat berpindah dari satu domain ke domain yang lain Diterapkan pada sistem operasi eksperimen TRIX Sistem Operasi/ #44

45 Referensi: [STA09]Stallings, William Operating System: Internal and Design Principles. 6 th edition. Prentice Hall Sistem Operasi/ #45


Download ppt "Thread, SMP, dan Microkernel (Pertemuan ke-5) Agustus 2010."

Presentasi serupa


Iklan oleh Google