Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Thread, SMP, dan Microkernel (Pertemuan ke-5)

Presentasi serupa


Presentasi berjudul: "Thread, SMP, dan Microkernel (Pertemuan ke-5)"— 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 Bahasan: Proses dan Thread SMP Microkernel Bedah OS: Windows Solaris
Linux

4 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

5 Konsep Proses Kepemilikan resource: Penjadualan/eksekusi:
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)

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

7 Multithreading (2)

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)

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

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

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

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

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

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

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

16 Remote Procedure Call (RPC) dengan Single Thread pada Uniprocessor
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

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

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

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

20 Agenda: Proses dan Thread Contoh aplikasi: Adobe PageMaker
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

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

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)

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

24 Jenis Thread User-Level Thread (ULT) Kernel-Level Thread (KLT)
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

25 User-Level Thread (ULT) (1)
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: 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)

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

27 Contoh hubungan antara status ULT
dengan status Proses

28 Keterangan (1) Gambar a: Gambar b:
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 ???

29 Keterangan (2) Gambar c: Gambar d:
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

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

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

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

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

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

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

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

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

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

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

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

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

42 Relasi antara Thread dan Proses
Macam-macam relasi antara thread:proses adalah sbb:

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

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

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


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

Presentasi serupa


Iklan oleh Google