Mata Kuliah Sistem Operasi Kode MK IT012336 5

  • Slides: 18
Download presentation
Mata Kuliah : Sistem Operasi Kode MK : IT-012336 5 Thread Tim Teaching Grant

Mata Kuliah : Sistem Operasi Kode MK : IT-012336 5 Thread Tim Teaching Grant Mata Kuliah Sistem Operasi

Thread l Program yang dieksekusi : l l Proses berat (heavyweight) => proses tradisional

Thread l Program yang dieksekusi : l l Proses berat (heavyweight) => proses tradisional Proses ringan (lightweight) => THREAD Thread terdiri dari ID thread, program counter, himpunan register dan stack. Thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama. 2

Proses Single and Multithread 3

Proses Single and Multithread 3

Keuntungan l l Tanggap Pembagian Sumberdaya (Resource Sharing) Economis Pemberdayaan arsitektur multiprosesor 4

Keuntungan l l Tanggap Pembagian Sumberdaya (Resource Sharing) Economis Pemberdayaan arsitektur multiprosesor 4

User Thread l l Pengelolaan thread dilakukan oleh user level Contoh : - POSIX

User Thread l l Pengelolaan thread dilakukan oleh user level Contoh : - POSIX Pthreads - Mach C-threads - Solaris threads 5

Kernel Thread l l Didukung oleh Kernel Contoh : - Windows 95/98/NT/2000 - Solaris

Kernel Thread l l Didukung oleh Kernel Contoh : - Windows 95/98/NT/2000 - Solaris - Tru 64 UNIX - Be. OS - Linux 6

Model Multithreading l Many-to-One l One-to-One l Many-to-Many 7

Model Multithreading l Many-to-One l One-to-One l Many-to-Many 7

Many-to-One l l Beberapa thread user-lever dipetakan ke dalam single kernel thread Penggunaannya pada

Many-to-One l l Beberapa thread user-lever dipetakan ke dalam single kernel thread Penggunaannya pada sistem tidak memerlukan dukungan kernel thread 8

One-to-One l l Setiap user-level thread dipetakan ke kernel thread. Contoh : - Windows

One-to-One l l Setiap user-level thread dipetakan ke kernel thread. Contoh : - Windows 95/98/NT/2000 - OS/2 9

Many-to-Many Model l Membolehkan setiap user-level thread dipetakan ke banyak kernel thread Membolehkan sistem

Many-to-Many Model l Membolehkan setiap user-level thread dipetakan ke banyak kernel thread Membolehkan sistem operasi membuat sejumlah kernel thread Contoh : l l Windows NT/2000 dengan paket Thread. Fiber Solaris 2 10

Isu Threading l l l Semantik dari fork() dan exec() system calls. Pembatalan thread.

Isu Threading l l l Semantik dari fork() dan exec() system calls. Pembatalan thread. Penanganan signal Pengelompokan thread Thread untuk data spesifik 11

Pthreads l l l Suatu POSIX standard (IEEE 1003. 1 c) API untuk pembuatan

Pthreads l l l Suatu POSIX standard (IEEE 1003. 1 c) API untuk pembuatan thread dan sinkronisasi synchronization. API menentukan perlakuan terhadap thread library, dan implementasi pembangunan libarary. Ditemui pada sistem operasi UNIX. 12

Solaris 2 Threads 13

Solaris 2 Threads 13

Solaris Process 14

Solaris Process 14

Windows 2000 Threads l l Implementasi menggunakan pemetaan oneto-one Setiap thread terdiri dari :

Windows 2000 Threads l l Implementasi menggunakan pemetaan oneto-one Setiap thread terdiri dari : - thread id - register set - pembagian user dan kernel stacks - private data storage area 15

Linux Threads l l l Linux lebih mengacu pada tasks dibandingkan threads. Pembuatan thread

Linux Threads l l l Linux lebih mengacu pada tasks dibandingkan threads. Pembuatan thread dilakukan menggunakan sistem clone() system call. Clone() membolehkan child task untuk berbagi ruang alamat pada parent task (proses) 16

Java Threads l Java threads dibuat melalui : l l l Extending Thread class

Java Threads l Java threads dibuat melalui : l l l Extending Thread class Implementasi Runnable interface Java threads dikelola oleh JVM. 17

Java Thread States 18

Java Thread States 18