SlideShare a Scribd company logo
1 of 43
Download to read offline
Sistem Operasi - Thread -




                                  S ISTEM O PERASI
                                      - T HREAD -

                                    Arya Adhyaksa Waskita

                                          Fakultas Ilmu Komputer
                            Universitas Pembangunan Nasional Veteran Jakarta


                                          24 Maret 2012
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
Sistem Operasi - Thread -
    Review




O 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
Sistem Operasi - Thread -
    Review




P 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
Sistem Operasi - Thread -
    Review




P 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
Sistem Operasi - Thread -
    Overview & Obyektif




O 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
Sistem Operasi - Thread -
    Overview & Obyektif




T HREAD




                   Mempelajari konsep thread
                   Mempelajari berbagai pustaka thread: Pthread, Win32, Java
                   Mempelajari berbagai isu terkait thread
Sistem Operasi - Thread -
    Konsep




O 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
Sistem Operasi - Thread -
    Konsep




T ENTANG THREAD




                   Lightweight process: satuan penggunaan CPU
                   Berbagi resource dengan thread lain dalam sebuah proses
                   Proses (heavyweight process), memilki kontrol tunggal eksekusi
Sistem Operasi - Thread -
    Konsep




I LUSTRASI




                            G AMBAR : Perbedaan proses dengan thread tunggal dan jamak
Sistem Operasi - Thread -
    Konsep




K 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
Sistem Operasi - Thread -
    Konsep




I SU TERKAIT PEMROGRAMAN MULTICORE




                   Berbagi aktifitas
                   Penyeimbangan beban
                   Memecah data
                   Ketergantungan data
                   Pengujian dan debug
Sistem Operasi - Thread -
    Konsep




I LUSTRASI : MULTITHREAD SERVER




                            G AMBAR : Server dengan model multithread
Sistem Operasi - Thread -
    Konsep




I LUSTRASI : ARSITEKTUR SINGLE CORE




                            G AMBAR : Penjadwalan thread pada arsitektur single core
Sistem Operasi - Thread -
    Konsep




I LUSTRASI : ARSITEKTUR MULTICORE




                            G AMBAR : Penjadwalan thread pada arsitektur multicore
Sistem Operasi - Thread -
    Konsep




J ENIS THREAD




                   User thread:
                   Kernel thread
         Keduanya meliputi: pembuatan, penjadwalan dan pengelolaan di levelnya
         masing-masing
Sistem Operasi - Thread -
    Konsep




U 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
Sistem Operasi - Thread -
    Konsep




K ERNEL THREAD




                   Pengelolaan di level kernel
                            lambat
                            dianggap seperti proses
                   Salah satu thread yang melakukan blocking, tidak mencegah seluruh
                   proses tertunda
Sistem Operasi - Thread -
    Model thread




O 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
Sistem Operasi - Thread -
    Model thread




M ANY- TO - ONE

                   Konkurensi terbatas
                   Green (Solaris-2), GNU portable thread
Sistem Operasi - Thread -
    Model thread




One-to-one



                   Proses dicegah tertunda secara total
                   Mahal, satu user thread harus diwakili satu kernel thread
                   Windows NT/XP/2000, Linux, Solaris 9
Sistem Operasi - Thread -
    Model thread




Many-to-many

                   Banyak user thread dipetakan ke kernel thread
                   Konkurensi optimal
                   Solaris sebelum versi 9, Windows NT/2000 dengan paket ThreadFiber
Sistem Operasi - Thread -
    Pustaka thread




O 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
Sistem Operasi - Thread -
    Pustaka thread




KONSEP




                     Memberikan API untuk pengembang perangkat lunak mengelola thread
                     Implementasi:
                            sepenuhnya di user level (-to-one)
                            didukung oleh kernel level (-to-many)
Sistem Operasi - Thread -
    Pustaka thread




POSIX THREAD




                     Diimplementasi baik sebagai user maupun kernel level
                     Standar IEEE 1003.1c: API terkait pembuatan dan sinkronisasi thread
                     Umum digunakan pada keluarga UNIX
Sistem Operasi - Thread -
    Pustaka thread




I 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 ...
Sistem Operasi - Thread -
    Pustaka thread




I 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 ...
Sistem Operasi - Thread -
    Pustaka thread




I 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;
         }
Sistem Operasi - Thread -
    Pustaka thread




JAVA THREAD




                     Dikelola JVM
                     Dibuat dengan mengimplementasi Runnable
Sistem Operasi - Thread -
    Pustaka thread




I LUSTRASI : JAVA THREAD




         class MutableInteger {
             private int value;
             public int getValue() {
                  return value;
             }
             public void setValue(int value) {
                  this.value=value;
             }
         }
Sistem Operasi - Thread -
    Pustaka thread




I 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);
             }
         }
Sistem Operasi - Thread -
    Pustaka thread




I 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>");
                   }
              }
         }
Sistem Operasi - Thread -
    Isu dalam thread




O 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
Sistem Operasi - Thread -
    Isu dalam thread




SC: fork & exec




                   Opsi saat thread dijalankan:
                            menduplikasi seluruh thread dalam sebuah proses
                            menduplikasi thread yang menjalankan fork
Sistem Operasi - Thread -
    Isu dalam thread




P EMBATALAN THREAD




                   Terkait terminasi thread sebelum seharusnya selesai
                   Opsi:
                            Asinkron: langsung melakukan terminasi
                            Deffered: safely cancelation,
Sistem Operasi - Thread -
    Isu dalam thread




P 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)
Sistem Operasi - Thread -
    Isu dalam thread




P 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
Sistem Operasi - Thread -
    Isu dalam thread




T 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
Sistem Operasi - Thread -
    Isu dalam thread




Thread 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);
         }
Sistem Operasi - Thread -
    Contoh: Sistem Operasi




O 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
Sistem Operasi - Thread -
    Contoh: Sistem Operasi




W 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
Sistem Operasi - Thread -
    Contoh: Sistem Operasi




I LUSTRASI




                             G AMBAR : Thread Windows XP
Sistem Operasi - Thread -
    Contoh: Sistem Operasi




L INUX THREAD


                   Dikenal sebagai task
                   Thread dibuat dengan clone () SC
                   Memungkinkan berbagi ruang memori antara child-parent, pointer ke
                   lokasi memori

More Related Content

Similar to Os04

dokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.pptdokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.ppt
CrisnaLidya
 
Konsep proses dan penjadwalan
Konsep proses dan penjadwalanKonsep proses dan penjadwalan
Konsep proses dan penjadwalan
Dickdick Maulana
 
Sistem operasi terdistribusi
Sistem operasi terdistribusiSistem operasi terdistribusi
Sistem operasi terdistribusi
hofidatur
 
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.pptMATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
karuniaman
 

Similar to Os04 (20)

Thread di Sistem Operasi
Thread di Sistem OperasiThread di Sistem Operasi
Thread di Sistem Operasi
 
Konsep dasar thread programming
Konsep dasar thread programmingKonsep dasar thread programming
Konsep dasar thread programming
 
Modul SO : Threads
Modul SO : ThreadsModul SO : Threads
Modul SO : Threads
 
Slide Jaringan Komputer ITB pertemuan 1
Slide Jaringan Komputer ITB pertemuan 1 Slide Jaringan Komputer ITB pertemuan 1
Slide Jaringan Komputer ITB pertemuan 1
 
Presentasi komputasi Pararel dan Terdistribusi
Presentasi komputasi Pararel dan TerdistribusiPresentasi komputasi Pararel dan Terdistribusi
Presentasi komputasi Pararel dan Terdistribusi
 
Modul SO : Pengenalan Sistem Operasi
Modul SO : Pengenalan Sistem OperasiModul SO : Pengenalan Sistem Operasi
Modul SO : Pengenalan Sistem Operasi
 
dokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.pptdokumen.tech_sistem-operasi-terdistribusi.ppt
dokumen.tech_sistem-operasi-terdistribusi.ppt
 
Os ppt.4
Os ppt.4Os ppt.4
Os ppt.4
 
Pert.4 proses dan thread lanjutan
Pert.4 proses dan thread lanjutanPert.4 proses dan thread lanjutan
Pert.4 proses dan thread lanjutan
 
Sister 05 - proses
Sister   05 - prosesSister   05 - proses
Sister 05 - proses
 
Kelompok 1
Kelompok 1Kelompok 1
Kelompok 1
 
Konsep proses dan penjadwalan
Konsep proses dan penjadwalanKonsep proses dan penjadwalan
Konsep proses dan penjadwalan
 
Bab 4
Bab 4Bab 4
Bab 4
 
Anita dadi (sistem operasi)
Anita dadi (sistem operasi)Anita dadi (sistem operasi)
Anita dadi (sistem operasi)
 
Materi pertemuan ke 4.ppt
Materi pertemuan ke 4.pptMateri pertemuan ke 4.ppt
Materi pertemuan ke 4.ppt
 
Sistem operasi terdistribusi
Sistem operasi terdistribusiSistem operasi terdistribusi
Sistem operasi terdistribusi
 
MATERI KULIAH KONSEP PROSES dan PENJADWALAN.ppt
MATERI KULIAH  KONSEP PROSES dan PENJADWALAN.pptMATERI KULIAH  KONSEP PROSES dan PENJADWALAN.ppt
MATERI KULIAH KONSEP PROSES dan PENJADWALAN.ppt
 
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptx
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptxSistem_Operasi_Informatika_Thread_Kelompok B2.pptx
Sistem_Operasi_Informatika_Thread_Kelompok B2.pptx
 
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.pptMATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
MATA KULIAH GANJIL ARSITEKTUR KOMPUTER.ppt
 
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptxMATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
MATERI PERKULIAHAN ARSITEKTUR KOMPUTER.pptx
 

Recently uploaded

Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
novibernadina
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
JuliBriana2
 

Recently uploaded (20)

Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
Intellectual Discourse Business in Islamic Perspective - Mej Dr Mohd Adib Abd...
 
E-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMAE-modul Materi Ekosistem untuk kelas X SMA
E-modul Materi Ekosistem untuk kelas X SMA
 
Stoikiometri kelas 10 kurikulum Merdeka.ppt
Stoikiometri kelas 10 kurikulum Merdeka.pptStoikiometri kelas 10 kurikulum Merdeka.ppt
Stoikiometri kelas 10 kurikulum Merdeka.ppt
 
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdfKanvas BAGJA prakarsa perubahan Ahyar.pdf
Kanvas BAGJA prakarsa perubahan Ahyar.pdf
 
Pelaksana Lapangan Pekerjaan Jalan .pptx
Pelaksana Lapangan Pekerjaan Jalan .pptxPelaksana Lapangan Pekerjaan Jalan .pptx
Pelaksana Lapangan Pekerjaan Jalan .pptx
 
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptxPPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
PPT MODUL 6 DAN 7 PDGK4105 KELOMPOK.pptx
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
 
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
DAFTAR PPPK GURU KABUPATEN PURWOREJO TAHUN 2024
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptxBab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
Bab 4 Persatuan dan Kesatuan di Lingkup Wilayah Kabupaten dan Kota.pptx
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 

Os04

  • 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 - Review O 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 - Review P 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 - Review P 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 & Obyektif O 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 & Obyektif T HREAD Mempelajari konsep thread Mempelajari berbagai pustaka thread: Pthread, Win32, Java Mempelajari berbagai isu terkait thread
  • 8. Sistem Operasi - Thread - Konsep O 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 - Konsep T 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 - Konsep I LUSTRASI G AMBAR : Perbedaan proses dengan thread tunggal dan jamak
  • 11. Sistem Operasi - Thread - Konsep K 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 - Konsep I SU TERKAIT PEMROGRAMAN MULTICORE Berbagi aktifitas Penyeimbangan beban Memecah data Ketergantungan data Pengujian dan debug
  • 13. Sistem Operasi - Thread - Konsep I LUSTRASI : MULTITHREAD SERVER G AMBAR : Server dengan model multithread
  • 14. Sistem Operasi - Thread - Konsep I LUSTRASI : ARSITEKTUR SINGLE CORE G AMBAR : Penjadwalan thread pada arsitektur single core
  • 15. Sistem Operasi - Thread - Konsep I LUSTRASI : ARSITEKTUR MULTICORE G AMBAR : Penjadwalan thread pada arsitektur multicore
  • 16. Sistem Operasi - Thread - Konsep J ENIS THREAD User thread: Kernel thread Keduanya meliputi: pembuatan, penjadwalan dan pengelolaan di levelnya masing-masing
  • 17. Sistem Operasi - Thread - Konsep U 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 - Konsep K 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 thread O 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 thread M ANY- TO - ONE Konkurensi terbatas Green (Solaris-2), GNU portable thread
  • 21. Sistem Operasi - Thread - Model thread One-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 thread Many-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 thread O 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 thread KONSEP 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 thread POSIX 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 thread I 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 thread I 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 thread I 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 thread JAVA THREAD Dikelola JVM Dibuat dengan mengimplementasi Runnable
  • 30. Sistem Operasi - Thread - Pustaka thread I 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 thread I 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 thread I 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 thread O 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 thread SC: fork & exec Opsi saat thread dijalankan: menduplikasi seluruh thread dalam sebuah proses menduplikasi thread yang menjalankan fork
  • 35. Sistem Operasi - Thread - Isu dalam thread P EMBATALAN THREAD Terkait terminasi thread sebelum seharusnya selesai Opsi: Asinkron: langsung melakukan terminasi Deffered: safely cancelation,
  • 36. Sistem Operasi - Thread - Isu dalam thread P 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 thread P 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 thread T 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 thread Thread 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 Operasi O 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 Operasi W 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 Operasi I LUSTRASI G AMBAR : Thread Windows XP
  • 43. Sistem Operasi - Thread - Contoh: Sistem Operasi L INUX THREAD Dikenal sebagai task Thread dibuat dengan clone () SC Memungkinkan berbagi ruang memori antara child-parent, pointer ke lokasi memori