Your SlideShare is downloading. ×
0
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Os04
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Os04

743

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
743
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sistem Operasi - Thread - S ISTEM O PERASI - T HREAD - Arya Adhyaksa Waskita Fakultas Ilmu Komputer Universitas Pembangunan Nasional Veteran Jakarta 24 Maret 2012
  • 2. Sistem Operasi - Thread -AGENDA 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 3. Sistem Operasi - Thread - ReviewO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 4. Sistem Operasi - Thread - ReviewP ERTEMUAN KE -3 Konsep proses: program yang sedang dieksekusi layout memory untuk proses Process Control Block Penjadwalan: Latar belakang: multiprogramming & multitasking Elemen: antrian: job, ready, device penjadwal (scheduler): long, short & medium term context switch: membuat CPU idle
  • 5. Sistem Operasi - Thread - ReviewP ERTEMUAN KE -3 Operasi: creation & termination Ruang memory: saling menggunakan (sebagian / seluruhnya), saling bebas Eksekusi: saling tunggu / parallel Terminasi proses → de-alokasi resource Komunikasi antar proses yang saling tergantung Model: shared memory & message passing Komunikasi: langsung & tidak langsung Sinkronisasi & Buffer Client-Server: Socket, RPC, RMI
  • 6. Sistem Operasi - Thread - Overview & ObyektifO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 7. Sistem Operasi - Thread - Overview & ObyektifT HREAD Mempelajari konsep thread Mempelajari berbagai pustaka thread: Pthread, Win32, Java Mempelajari berbagai isu terkait thread
  • 8. Sistem Operasi - Thread - KonsepO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 9. Sistem Operasi - Thread - KonsepT ENTANG THREAD Lightweight process: satuan penggunaan CPU Berbagi resource dengan thread lain dalam sebuah proses Proses (heavyweight process), memilki kontrol tunggal eksekusi
  • 10. Sistem Operasi - Thread - KonsepI LUSTRASI G AMBAR : Perbedaan proses dengan thread tunggal dan jamak
  • 11. Sistem Operasi - Thread - KonsepK EUNTUNGAN MODEL MULTITHREAD Responsif → web browser Resource sharing: aplikasi dengan beberapa thread dapat menggunakan lokasi memori yang sama Ekonomis: tanpa alokasi dan dealokasi resource → resource sharing Skalabilitas: selain optimasi penggunaan prosesor multicore, perpindahan antar thread lebih cepat pada single core daripada proses
  • 12. Sistem Operasi - Thread - KonsepI SU TERKAIT PEMROGRAMAN MULTICORE Berbagi aktifitas Penyeimbangan beban Memecah data Ketergantungan data Pengujian dan debug
  • 13. Sistem Operasi - Thread - KonsepI LUSTRASI : MULTITHREAD SERVER G AMBAR : Server dengan model multithread
  • 14. Sistem Operasi - Thread - KonsepI LUSTRASI : ARSITEKTUR SINGLE CORE G AMBAR : Penjadwalan thread pada arsitektur single core
  • 15. Sistem Operasi - Thread - KonsepI LUSTRASI : ARSITEKTUR MULTICORE G AMBAR : Penjadwalan thread pada arsitektur multicore
  • 16. Sistem Operasi - Thread - KonsepJ ENIS THREAD User thread: Kernel thread Keduanya meliputi: pembuatan, penjadwalan dan pengelolaan di levelnya masing-masing
  • 17. Sistem Operasi - Thread - KonsepU SER THREAD Selalu berasosiasi dengan kernel thread Pustaka di level user → cepat Salah satu thread yang melakukan blocking akan mencegah seluruh proses di mana thread tersebut berasal untuk ditunda (single thread kernel) → SC: read, sleep Pthread (POSIX), Win32, Java
  • 18. Sistem Operasi - Thread - KonsepK ERNEL THREAD Pengelolaan di level kernel lambat dianggap seperti proses Salah satu thread yang melakukan blocking, tidak mencegah seluruh proses tertunda
  • 19. Sistem Operasi - Thread - Model threadO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 20. Sistem Operasi - Thread - Model threadM ANY- TO - ONE Konkurensi terbatas Green (Solaris-2), GNU portable thread
  • 21. Sistem Operasi - Thread - Model threadOne-to-one Proses dicegah tertunda secara total Mahal, satu user thread harus diwakili satu kernel thread Windows NT/XP/2000, Linux, Solaris 9
  • 22. Sistem Operasi - Thread - Model threadMany-to-many Banyak user thread dipetakan ke kernel thread Konkurensi optimal Solaris sebelum versi 9, Windows NT/2000 dengan paket ThreadFiber
  • 23. Sistem Operasi - Thread - Pustaka threadO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 24. Sistem Operasi - Thread - Pustaka threadKONSEP Memberikan API untuk pengembang perangkat lunak mengelola thread Implementasi: sepenuhnya di user level (-to-one) didukung oleh kernel level (-to-many)
  • 25. Sistem Operasi - Thread - Pustaka threadPOSIX THREAD Diimplementasi baik sebagai user maupun kernel level Standar IEEE 1003.1c: API terkait pembuatan dan sinkronisasi thread Umum digunakan pada keluarga UNIX
  • 26. Sistem Operasi - Thread - Pustaka threadI LUSTASI : POSIX THREAD #include <stdio.h> #include <stdlib.h> #include <pthread.h> int *a,*b; void *vector(void *vargp) { int temp,counter,start,finish,ptrNumber,*passVal ; ptrNumber=*((int *) vargp); free(vargp); start=(ptrNumber*25000); finish=start+25000; temp=0; for(counter=start;counter<finish;counter++) temp+=a[counter]*b[counter]; passVal=malloc(sizeof(int)); *passVal=temp; pthread_exit(passVal); } dilanjutkan ...
  • 27. Sistem Operasi - Thread - Pustaka threadI LUSTRASI : POSIX THREAD int main() { pthread_t tid[4]; int c=0,c1=0,i,*ptr,*passVal,tmp; a=malloc(100000*sizeof(int)); b=malloc(100000*sizeof(int)); for(i=0;i<1000;i++) { a[i]=1+(rand()%1000); b[i]=1+(rand()%1000); c+=(a[i]*b[i]); } printf("C total (Sequential) = %dn",c); for(i=0;i<4;i++) { ptr=malloc(sizeof(int)); *ptr=i; pthread_create(&tid[i],NULL,vector,ptr); } dilanjutkan ...
  • 28. Sistem Operasi - Thread - Pustaka threadI LUSTRASI : POSIX THREAD for(i=0;i<4;i++) { if((pthread_join(tid[i], (void**) &passVal))==0) { tmp=*passVal; c1+=tmp; } else { printf("Threads %d can’t be joinedn",i); printf("program terminatedn"); exit(0); } } printf("C total (Parallel) = %dn",c1); printf("nComparing sequential and parallel resultn"); if((c-c1)!=0) printf("pthread failed...!n"); else printf("pthread success!n"); return 0; }
  • 29. Sistem Operasi - Thread - Pustaka threadJAVA THREAD Dikelola JVM Dibuat dengan mengimplementasi Runnable
  • 30. Sistem Operasi - Thread - Pustaka threadI LUSTRASI : JAVA THREAD class MutableInteger { private int value; public int getValue() { return value; } public void setValue(int value) { this.value=value; } }
  • 31. Sistem Operasi - Thread - Pustaka threadI LUSTRASI : JAVA THREAD class Summation implements Runnable { private int upper; private MutableInteger sumValue; public Summation (int upper, MutableInteger sumValue) { this.upper=upper; this.sumValue=sumValue; } public void run() { int sum=0; Thread thrd=new Thread(); thrd.start(); for(int i=0; i<upper; i++) { sum=sum+2; } sumValue.setValue(sum); } }
  • 32. Sistem Operasi - Thread - Pustaka threadI LUSTRASI : JAVA THREAD public class Driver { public static void main(String[] args) { if(args.length > 0) { if(Integer.parseInt(args[0])<0) { System.err.println(args[0]+" must be>=0."); } else { MutableInteger sum=new MutableInteger(); int upper=Integer.parseInt(args[0]); Thread thrd=new Thread(new Summation(upper,sum)); thrd.start(); try { thrd.join(); System.out.println("The sum of "+ upper+ " is " + sum.getValue()); } catch(InterruptedException e) { } } } else { System.err.println("Usage: Driver <Integer Value>"); } } }
  • 33. Sistem Operasi - Thread - Isu dalam threadO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 34. Sistem Operasi - Thread - Isu dalam threadSC: fork & exec Opsi saat thread dijalankan: menduplikasi seluruh thread dalam sebuah proses menduplikasi thread yang menjalankan fork
  • 35. Sistem Operasi - Thread - Isu dalam threadP EMBATALAN THREAD Terkait terminasi thread sebelum seharusnya selesai Opsi: Asinkron: langsung melakukan terminasi Deffered: safely cancelation,
  • 36. Sistem Operasi - Thread - Isu dalam threadP ENANGANAN SIGNAL Digunakan untuk memberitahu proses bahwa ada sebuah kejadian. Diterima secara sinkron: dikirimkan ke proses penyebab munculnya SIGNAL (pembaian dengan nol) asinkron: dikirimkan oleh kejadian di luar proses (ctrl C) Dikelola oleh: default handler user defined handler Beberapa ada yang diabaikan (mengubah ukuran obyek window), ada yang menyebabkan proses harus diterminasi (mengakses memori secara ilegal)
  • 37. Sistem Operasi - Thread - Isu dalam threadP ENANGANAN SIGNAL Pada thread: SIGNAL dikirimkan ke thread yang menyebabkannya SIGNAL dikirimkan ke setiap thread pada proses SIGNAL dikirimkan ke thread tertentu pada proses Menugaskan sebuah thread untuk menangani semua SIGNAL yang terjadi
  • 38. Sistem Operasi - Thread - Isu dalam threadT HREAD P OOLS Multithreaded server: berpotensi membahayakan sistem jika diijinkan membuat thread dalam jumlah sangat banyak (tak hingga) Dibatasi jumlah thread yang diijinkan (pools) Saat proses dijalankan, sejumlah thread telah disiapkan, menunggu untuk memberi layanan pada client Keuntungan: lebih cepat daripada konsep on-demand mencegah kegagalan operasi karena keterbatasan resource
  • 39. Sistem Operasi - Thread - Isu dalam threadThread specific data Memungkinkan setiap thread memiliki datanya sendiri for(i=0;i<4;i++) { ptr=malloc(sizeof(int)); *ptr=i; pthread_create(&tid[i],NULL,vector,ptr); }
  • 40. Sistem Operasi - Thread - Contoh: Sistem OperasiO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 M ODEL THREAD 5 P USTAKA THREAD 6 I SU DALAM THREAD 7 C ONTOH : S ISTEM O PERASI
  • 41. Sistem Operasi - Thread - Contoh: Sistem OperasiW INDOWS XP One-to-one mapping Berisi: identitas register, stack (user & kernel), data khusus 1 Struktur data utama: Executive thread block (ETHREAD) Kernel thread block (KTHREAD) Thread environment block (TEB) 1 konteks thread
  • 42. Sistem Operasi - Thread - Contoh: Sistem OperasiI LUSTRASI G AMBAR : Thread Windows XP
  • 43. Sistem Operasi - Thread - Contoh: Sistem OperasiL INUX THREAD Dikenal sebagai task Thread dibuat dengan clone () SC Memungkinkan berbagi ruang memori antara child-parent, pointer ke lokasi memori

×