04 Thread.pdf

10
1 Bab 4: Thread Pendahuluan Model Multithreading Model Multithreading PermasalahanThreading Pthreads Solaris 2 Threads Windows 2000 Threads Linux Threads Java Threads 5.1 Java Threads Single Process dan Multithread Process 5.2

Transcript of 04 Thread.pdf

1

Bab 4: Thread

� Pendahuluan� Model Multithreading� Model Multithreading� PermasalahanThreading� Pthreads� Solaris 2 Threads� Windows 2000 Threads� Linux Threads� Java Threads

5.1

� Java Threads

Single Process dan MultithreadProcess

5.2

2

Kelebihan

� Tingkat responsif

� Penggunaan Resource bersama-sama

� Ekonomi

� Utilitas arsitektur mikroprosessor

5.3

User Threads

� Adalah pengelolaan thread yang dilakukan oleh user-level threads librarylevel threads library

� Contoh- POSIX Pthreads- Mach C-threads- Solaris threads

5.4

3

Kernel Threads

� Didukung dengan Kernel

� Contoh- Windows 95/98/NT/2000- Solaris- Tru64 UNIX- BeOS- Linux

5.5

Model Multithreading

� Many-to-One

� One-to-One

� Many-to-Many

5.6

4

Many-to-One

� Beberapa user-level threads dipetakan ke satu kernel thread.thread.

� Digunakan pada sistem yang tidak didukung kernel threads.

5.7

Model Many-to-One

5.8

5

One-to-One

� Setiap user-level thread dipetakan ke kernel thread.

� Contoh- Windows 95/98/NT/2000- OS/2

5.9

Model One-to-one

5.10

6

Many-to-Many

� Memungkinkan beberapa user level thread dipetakan ke beberapa kernel thread.beberapa kernel thread.

� Memungkinkan sistem operasi membuat sejumlah kernel thread.

� Solaris 2 � Windows NT/2000 dengan ThreadFiber package

5.11

Model Many-to-Many

5.12

7

Permasalahan Threading

� Semantik system call fork() dan exec().� Pembatalan Thread.� Pembatalan Thread.� Penanganan sinyal (signal handling)� Thread pools� Thread specific data

5.13

Pthreads

� Adalah API standar POSIX (IEEE 1003.1c) untuk pembuatan dan sinkronisasi thread.pembuatan dan sinkronisasi thread.

� API menentukan perilaku thread library, implementasi sesuai perkembangan library.

� Umum pada sistem operasi UNIX.

5.14

8

Solaris 2 Threads

5.15

Solaris Process

5.16

9

Windows 2000 Threads

� Mengimplementasikan pemetaan one-to-one.� Setiap thread terdiri dari � Setiap thread terdiri dari

- thread id- sekumpulan register- memisahkan stack user dan kernel- area penyimpan data privat

5.17

Linux Threads

� Linux menggunakan istilah thread sebagai tasks daripadathread.thread.

� Pembuatan thread dilakuka dengan system call clone().� Clone() memungkinkan task child menggunakan ruang

alamat yang sama dengan task parent (process).

5.18

10

Java Threads

� Java threads dibuat dengan :

� Class Thread� Mengimplementasikan antar muka yang Runnable

� Java thread dikelola oleh JVM.

5.19

State pada Java Thread

5.20