Bab selanjutnya membahas tentang penggunaan thread pada java, thread bisa memiliki status new, runnable, block, dead.

dokumen-dokumen yang mirip
TUGAS SISTEM OPERASI THREAD

Proses dan Threads Dalam SISTEM OPERAS

Contoh (3) Solusinya adalah dengan membuat web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendeng

SISTEM OPERASI THREAD DAN MULTITHREADING

ARTIKEL PERBEDAAN PROSES DENGAN THREAD. Di susun Oleh: Nama : Sri Wahyuni Nim :

TUGAS SISTEM OPERASI

Definisi (1) ready, dll.) Sering disebut dengan lightweight process. register set, dan stack. sama.

SISTEM OPERASI ISG2B3 THREAD. Agus Setiawan Program Studi Sistem Informasi Fakultas Rekayasa Industri Telkom University

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Thread. pada satu waktu. menjalankan banyak tugas/thread. yang sama

Thread Proses merupakan sebuah program yang mengeksekusi THREAD tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu t

KONSEP PROSES (CONT.)

Secara tidak langsung, proses merupakan program yang sedang dieksekusi.

TUGAS Mata Kuliah : Sistem Terdistribusi

Thread juga sering disebut Lightweight process. Proses tradisional ( Heavyweight process ) mempunyai thread tunggal

PROSES PENGANTAR DATA TERDISTRIBUSI. Materi: 1. Thread 2. Client/Server 3. Agent

Definisi: unit dasar dari penggunaan CPU. Thread terdiri dari: thread ID, program counter, register, dan stack.

Perbedaan Kernell Linux dan Windows

Rahmady Liyantanto liyantanto.wordpress.com

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi. System Calls dan Thread

Bab 10. Konsep Proses

Artikel Perbedaan Proses Dan Thread. Disusun Oleh : Nama : Rozy Putra Pratama NIM : Prodi : Sistem Informasi

PROSES DAN THREADS DALAM SISTEM OPERASI

Bab 13. Konsep Penjadwalan

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

THREAD Ulir utas thread

Bab 3. Proses. Gambar 3.1. Thread

Hendy Kusumo Nugroho ( kelas A)

Proses. Sistem Terdistribusi Reza Aditya Firdaus, S.kom

Kelompok 12. Thread Java

THREADS PADA WINDOWS Julius Bata /

TUGAS MATA KULIAH SISTEM OPERASI ARTIKEL TENTANG PERBEDAAN PROSES DAN THREAD

Algoritma Penjadwalan 2

PROSES. Sistem Terdistribusi

ARTIKEL TENTANG THREAD Definisi Thread

PROSES DAN THREAD. : Anggo Luthfi Yunanto. Nim : : sistem informasi

Sistem Operasi Pertemuan 4 Thread, SMP & Microkernel. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

REVIEW DAN REVISI BUKU

Perbedaan Anatara Thread dan Proses

Sistem terdistribusi Processes, Threads and Virtualization pertemuan 3. Albertus Dwi Yoga Widiantoro, M.Kom.

Pemrograman Berorientasi Obyek (IT251) Ramos Somya, S.Kom., M.Cs.

TUGAS SISTEM OPERASI

Dimana thread digunakan?

MAKALAH SISTEM OPERASI Perbedaan Proses dan Thread. Disusun Oleh : NOVITA ANGGRAINI PUTRI

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

BAB II LANDASAN TEORI

THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada

Pertemuan #2: Proses dan Thread

4. SISTEM OPERASI TERDISTRIBUSI

Processes. Processes. SISTIM OPERASI (Operating System) IKI-20230

Bab 19. Solusi Critical Section

Mata Kuliah : Sistem Operasi Kelas : Teknik Informatika 4

A. Deskripsi Singkat. B. Tujuan Instruksional Umum (TIU) C. Bahasan. SILABUS MATA KULIAH Kode MK: Semester: Bobot SKS: 3. Matakuliah : SISTEM OPERASI

Sistem Operasi PENGATURAN PROSES

Prio Handoko, S.Kom., M.T.I.

Sistem Operasi. Teknologi Informasi

Sistem Operasi Mobile

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

1. Mampu mengimplementasikan thread dalam sebuah aplikasi 2. Memahami kegunaan thread dalam aplikasi

Sistem Operasi Komputer

RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN SEMESTER

1. New 2. Running 3. Waiting 4. Ready 5. Terminated

Bab 3. Proses Proses POKOK BAHASAN: TUJUAN BELAJAR: 3.1 KONSEP PROSES

Thread, SMP, dan Microkernel (P ( e P rtemuan ua ke-6) 6 Agustus 2014

Sistem operasi. Contoh sistem operasi modern adalah Linux, Android, ios, Mac OS X, dan Microsoft Windows

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi

Arsitektur Sistem Operasi WINDOWS

Tinjaun Umum Sistem Komputer 1

Arsitektur Komputer Sistem Operasi

BAB 16. Evaluasi dan Ilustrasi

Model Pemrograman Paralel

TUGAS ARTIKEL THREAD SISTEM OPERASI

SILABUS JURUSAN MANAJEMEN - PROGRAM STUDI D3 MANAJEMEN INFORMATIKA DIREKTORAT DIPLOMA TEKNOLOGI INFORMASI UNIVERSITAS GUNADARMA

Bab 3.Proses dan Penjadualan

Proses dan Penjadwalan

Nama : Putra Adi Nugraha dan Priska Kalista Kelas : B

Tahun Akademik 2014/2015 Semester II. DIG1I3 - Instalasi dan Penggunaan Sistem Operasi

SISTEM OPERASI. Belajar SO?

Struktur Sistem Komputer

Bab 3: Proses-Proses. Konsep Proses

Arsitektur Sistem Komputer. Operasi Sistem Komputer. Struktur Sistem Komputer. Review:

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Kontrak Kuliah. Sistem Operasi

Sistem Operasi Pertemuan 3 Deskripsi & Kendali Proses. H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ.

MODUL 2 KOMPONEN, LAYANAN SISTEM OPERASI M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - C H A P T E R 2

ARSITEKTUR DAN ORGANISASI KOMPUTER

STRUKTUR SISTEM OPERASI

Sebagai Kordinator, yang memberikan fasilitas sehingga segala aktivitas yang kompleks dapat dikerjakan dalam urutan yang benar.

1. Disk Schedulling 2. Buffering

Aplikasi Komputer SISTEM OPERASI. Sulis Sandiwarno, S.Kom.,M.Kom. Sistem Informasi. Modul ke: Fakultas FASILKOM. Program Studi

Struktur Sistem Operasi

CONTOH PENDSTRIBUSIAN HARDWARE

Dukungan Sistem Operasi :

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Struktur Sistem Komputer

Studi Kasus Kernel Linux

Sistem Terdistribusi Proses. S1 Sistem Komputer Musayyanah, S.ST, MT

Pertemuan 1# Pengantar Sistem Operasi. Dr. M. Arief Soeleman, M.Kom

PENGANTAR APLIKASI KOMPUTER

Operating System. I/O System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Transkripsi:

Review Konsep Thread Anggota Kelompok 1. Genta Moerita (A 0606104265) 2. Yuan Hanif Syaniardi (B 0606031603) 3. Yunus Kuntawi Aji (B 0606031616) Komentar Umum Secara umum menurut kami bab 11 mengenai konsep thread ini sudah cukup jelas dalam menggambarkan multithreading. Gambar yang tersedia juga sudah cukup memberikan pemahaman terhadap konsep model-model multithreading. Beberapa hal yang perlu ditambahkan adalah kerugian dari multithreading dan contoh thread pada Sistem Operasi lain. Hubungan dengan bab sebelumnya/selanjutnya Bab ini menerangkan tentang multithreading dimana dalam suatu waktu bisa terjadi lebih dari satu proses yang konsepnya telah dijelaskan pada bab sebelumnya, yaitu bab 10 tentang Konsep Proses. Bab selanjutnya membahas tentang penggunaan thread pada java, thread bisa memiliki status new, runnable, block, dead. Komentar kelengkapan per bagian 11.1 Bagian ini sudah lengkap karena sudah menerangkan definisi dari multithreading dan alasan membuat thread 11.2 Bagian ini masih kurang lengkap, sebaiknya ditambah dengan kekurangan multithreading 11.3 Ilustrasi gambar pada bab ini sudah cukup menjelaskan secara lengkap tentang model multithreading 11.4 Bab ini perlu ditambah lagi tentang penjelasan pustaka thread 11.5 Pada penjelasan cara pemberhentian thread perlu sedikit pengubahan redaksi kalimat 11.6 Di dalam bab ini perlu ditambahkan definisi mengenai Thread Pools 11.7 - Terdapat kesalahan penulisan pada paragraf dua baris pertama pada kata multithreading - Untuk memperjelas pemahaman mungkin perlu ditambahkan ilustrasi gambar 11.8 Perlu diberi contoh thread dari sistem operasi yang lain untuk memperkaya pemahaman dan pengetahuan. 11.9 Di dalam kesimpulan perlu ditambahkan rangkuman tentang pustaka thread Usulan kelengkapan 11.1 Perlu ada sedikit pengubahan redaksi 11.2 Bagian ini sebaiknya ditambah dengan kekurangan multithreading

11.3 - Perlu ditambahkan contoh pada model many-to-many - Perlu penjelasan lebih mengenai kelebihan dan kekurangan tiap model 11.4 Perlu diberikan definisi atau penjelasan lebih tentang pustaka thread 11.5 Perlu dilakukan perubahan redaksi kalimat dalam cara pemberhentian thread 11.6 Perlu ditambahkan definisi mengenai Thread Pools 11.7 Tambahkan ilustrasi gambar 11.8 Perlu diberi contoh thread dari sistem operasi yang lain untuk memperkaya pemahaman dan pengetahuan. 11.9 Di dalam kesimpulan perlu ditambahkan rangkuman tentang pustaka thread

Bab 11. Konsep Thread 11.1. Pendahuluan Pada bab sebelumnya kita telah mempelajari tentang proses, namun seiring berjalannya waktu dan tuntutan teknologi ternyata ditemukan kelemahan yang sebenarnya bisa diminimalisir pada proses. Untuk itulah diciptakan thread yang merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek seperti menjalankan beberapa task secara bersamaan walaupun otaknya hanya satu. Di sini kita akan belajar mengapa harus ada thread, perbedaan thread dengan proses, keuntungan dan kerugian pengimplementasian thread, model-model multithreading, pengimplementasian pustaka thread, pembatalan thread, thread pools, penjadwalan thread dan thread di Linux. 11.2. Keuntungan dan Kerugian MultiThreading Multiprocessing merupakan penggunaan dua atau lebih CPU dalam sebuah sistem komputer. Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya seperti CPU. Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen. Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan menjadi 4 bagian: a. Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar. b. Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama. c. Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread. d. Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu. Adapun kerugian dari multithreading adalah : 1. Jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads. Misalnya jika heavy disk I/O terlibat, akan lebih cepat jika hanya memiliki 1 atau 2 thread yang melaksanakan tugas secara berurutan, daripada menggunakan multithread yang masing-masing mengeksekusi sebuah task pada waktu yang sama.

2. Sistem yang memiliki kecepatan prosesor dan memory yang cenderung sama, sehingga tidak ada efisiensi yang hilang (mengacu kepada latency), tidak akan memperoleh peningkatan bandwidth yang signifikan jika menggunakan multithreading. 3. Multithreading menghasilkan program yang lebih kompleks. Menggunakan multiple thread sendiri tidak akan menciptakan kerumitan, tapi interaksi antar thread-lah yang mengakibatkan kompleksitas tersebut. 4. Thread yang banyak bisa saling berinterferensi ketika saling berbagi sumber daya hardware seperti cache. 11.3. Model MultiThreading Beberapa terminologi yang akan dibahas: a. Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan. b. Thread Kernel:. Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna. Gambar 11.1. Model-Model MultiThreading Model-Model MultiThreading: a. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Kekurangannya adalah ketika ada satu blocking systemc call, semua akan menjadi terblok juga. Contoh: Solaris Green Threads dan GNU Portable Threads. b. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000, Linux, Solaris 9, OS/2.

c. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor dan lebih efisien. Contoh : Solaris 2, IRIX, HPUX. 11.4. Pustaka Thread Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread: a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call. b. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel. Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32. 11.5. Pembatalan Thread Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. Misalnya hendak mematikan Java Virtual Machine (JVM) pada program Java. Maka sebelum JVM dimatikan seluruh thread yang berjalan harus dibatalkan terlebih dahulu. Contoh lain adalah pada masalah search. Apabila sebuah thread mencari sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan dibatalkan. Thread yang akan diberhentikan biasa disebut target thread. Pemberhentian target Thread dapat dilakukan dengan 2 cara: a. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread. b. Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut. Hal yang sulit dari pembatalan thread ini adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan dibatalkan. Selain itu kesulitan lain adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi dengan thread lain. Hal ini akan menjadi masalah yang sulit apabila digunakan asynchronous cancellation. Sistem operasi akan mengambil kembali sumber daya dari thread yang dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya dari thread yang dibatalkan. Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak dibatalkan. Tetapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus batal pada waktu dimana ia dapat dibatalkan secara aman yang aman. Pthread merujuk sebagai cancellation points. Pada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation.

11.6. Thread Pools Pada web server yang menerapkan multithreading ada dua masalah yang timbul: a. Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani permintaan yang diajukan pada kenyataannya thread dibuang seketika sesudah ia menyelesaikan tugasnya. b. Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem. Solusinya adalah dengan penggunaan Thread Pools, yaitu sekumpulan thread yang mengantri untuk mengerjakan tugas Cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk bekerja. Jadi, ketika server menerima permintaan, ia akan membangunkan thread dari pool dan jika thread tersedia maka permintaan tersebut akan dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak ada thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas. Keuntungan thread pool adalah: a. Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibandingkan menunggu thread baru dibuat. b. Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent. Jumlah thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klien yang concurrent. c. Pembuatan jumlah thread yang tepat dapat meningkatkan performa serta sistem yang lebih stabil

11.7. Penjadwalan Thread Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut. Untuk menjadwalkan thread, sistem dengan model multithreading many to many atau many to one menggunakan: a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia. b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel). Gambar 11.2. Penjadwalan Thread

11.8. Thread 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 call clone() dan fork(). Clone() mempunyai sifat mirip dengan fork(), kecuali dalam hal pembuatan salinan 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 memungkinkan cloned 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 process-nya tetapi menciptakan pointer ke struktur data pada parent process yang memungkinkan child process untuk berbagi memori dan sumber daya dari parent process-nya. Project Linux Thread menggunakan system call ini untuk mensimulasi thread di user space. Sayangnya, pendekatan ini mempunyai beberapa kekurangan, khususnya di area signal handling, scheduling, dan interprocess 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. Pada sistem operasi lain seperti Mac OS X, terdapat lima thread API yang berbeda, yaitu: Mach thread, POSIX thread (pthreads), Cocoa thread (NSThreads), Carbon MP tasks, dan Carbon Thread Manager. Akan tetapi tidak mudah untuk menentukan suatu thread mengerjakan tugas yang mana, sehingga dibuatlah suatu siklus yang membuat masing-masing thread bekerja secara bergantian. 11.9. Rangkuman Thread adalah alur kontrol dari suatu proses. Keuntungan menggunakan Multithreading: a. Meningkatkan respon dari pengguna. b. Pembagian sumber daya. c. Ekonomis. d. Mengambil keuntungan dari arsitektur multiprosessor. Tiga model Multithreading: a. Model Many-to-One. b. Model One-to-One. c. Model Many-to-Many. Pustaka Thread bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Cara untuk mengimplementasikannya yaitu: a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel. b. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi.

Pembatalan Thread: Tugas untuk membatalkan Thread sebelum menyelesaikan tugasnya. Pembatalan Thread terdiri dari 2 jenis: 1. Asynchronous cancellation. 2. Deffered cancellation. Thread Pools menciptakan sejumlah Thread yang ditempatkan di dalam pool dimana Thread menunggu untuk dipanggil. Thread Schedulling ada 2 macam: 1. Local Schedulling. 2. Global Schedulling. Istilah thread di Linux adalah task. Pembuatan Thread di Linux menggunakan system call clone(). Sedangkan di Mac sekumpulan thread yang ada akan mengerjakan tugas bergantian dengan menggunakan siklus.

Rujukan [Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley & Sons. [WEBFSF1991a] Free Software Foundation. 1991. GNU General Public License http://gnui.vlsm.org/ licenses/ gpl.txt. Diakses 29 Mei 2006. [WEBWIKI2007] Wikipedia. 2007. Thread_(computer_science) http://en.wikipedia.org/ wiki/thread_(computer_science). Diakses 16 Februari 2007. [WEBWIKI2007] Wikipedia.. 2007. Multiprocessing http://en.wikipedia.org/ wiki/ Multiprocessing. Diakses 16 Februari 2007. [WEBWIKI2007] Wikipedia.. 2007. Computer_multitasking http://en.wikipedia.org/ wiki/ Computer_mutitasking. Diakses 16 Februari 2007. [WEBIBM] IBM.. 2007. linux_threading http://www-128.ibm.com/ developerworks/ java/ library/j-prodcon. Diakses 16 Februari 2007. [WEBWIKI2008] Wikipedia.. 2008. Thread_pool_pattern http://en.wikipedia.org/ wiki/ Thread_pool_pattern. Diakses 8 April 2008. [WikiCH2008] Wikipedia, The Free Encyclopedia. 2008. Computer Hardware http://en.wikipedia.org/wiki/multithreading Diakses 7 April 2008 [WikiCS2008] Wikipedia, The Free Encyclopedia. 2008. Computer Science http://en.wikipedia.org/wiki/thread Diakses 7 April 2008 [TechnicalNote] Technical Note 2028. 2008. Threading Architectures http://developer.apple.com/technotes/tn/tn2028.html. Diakses 9 April 2008

Hak Cipta Mahasiswa Fakultas Ilmu Komputer Universitas Indonesia, peserta mata kuliah Sistem Operasi semester genap 2008 1. Genta Moerita (A 0606104265) 2. Yuan Hanif Syaniardi (B 0606031603) 3. Yunus Kuntawi Aji (B 0606031616) Silakan menyalin, mengedarkan, dan/atau memodifikasi dokumen ini