THREADS PADA WINDOWS Julius Bata /

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

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

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

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

SISTEM OPERASI THREAD DAN MULTITHREADING

TUGAS SISTEM OPERASI

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

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

PROSES DAN THREADS DALAM SISTEM OPERASI

THREAD Ulir utas thread

Perbedaan Anatara Thread dan Proses

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

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

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

Perbedaan Kernell Linux dan Windows

TUGAS Mata Kuliah : Sistem Terdistribusi

TUGAS SISTEM OPERASI THREAD

TUGAS SISTEM OPERASI

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

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

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

Proses dan Threads Dalam SISTEM OPERAS

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

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

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

Bab 13. Konsep Penjadwalan

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

Struktur Sistem Komputer

Operating System: An Overview. Ch. 3: Process Management. Ch. 3: Process Management

Dimana thread digunakan?

KONSEP PROSES (CONT.)

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

Struktur Sistem Komputer

PROSES. Sistem Terdistribusi

Secara tidak langsung, proses merupakan program yang sedang dieksekusi.

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

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

Operating System: An O verview. Ch. 3: Process Management

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

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Bab 10. Konsep Proses

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

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN SEMESTER

Bab 3: Proses-Proses. Konsep Proses

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

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

Rahmady Liyantanto liyantanto.wordpress.com

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

Struktur Sistem Komputer. Abdullah Sistem Informasi Universitas Binadarma

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

Sistem Operasi. Proses dan Thread

Andi Gustanto M / Kelas 22 / TI

Sistem Operasi - PCB (process control block)

1.PCB (process control block)

TUGAS MATA KULIAH SISTEM OPERASI ARTIKEL TENTANG PERBEDAAN PROSES DAN THREAD

DASAR KOMPUTER. Dukungan Sistem Operasi

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

Sistem Operasi PENGATURAN PROSES

IKI Sistem Operasi Konsep Page Replacement (Pemindahan Halaman)

Nama : Didit Jamianto NIM : Kelas/Prodi : 22 / TI. Tugas Sistem Operasi

REVIEW DAN REVISI BUKU

Dukungan Sistem Operasi :

MANAJEMEN MEMORI. Manajemen Memori 1

Struktur Sistem Komputer

Metode Alokasi dan Managemen Ruang Kosong

Studi Kasus Kernel Linux

4 Implementasi Proses

12 Input / Output. Sistem I/O. Hardware I/O. Struktur PC Bus

Concurrency 1: y Mutual Exclusion dan Sinkronisasi (Perte rt muan ke muan -10) 10 Oktober 2014

Pertemuan #2: Proses dan Thread

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

Algoritma Penjadwalan 2

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

Memory Management. Memory Ch. 8. Latar Belakang. Main-Memory Management

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) 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 - M O D U L 4

Soal-jawab Quiz 1. Oleh: Endro Ariyanto (END) Oktober 2008

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Kelompok 12. Thread Java

1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block?

Pertemuan #5: Memori dan Memori Virtual

SISTEM OPERASI (MANAJEMEN PROSES)

KONTRAK PERKULIAHAN MATA KULIAH KOM311 SISTEM OPERASI

Kelompok Pemberian Halaman

SATUAN ACARA PERKULIAHAN

Text Berisi kode programnya

Bab 3: Proses-Proses. Konsep Proses

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

Perbedaan Proses dan Program

Kelas: Nilai (Diisi Dosen):... IF

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Bab 8: Manajemen Memori. Latar Belakang

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Operating System: An Overview. Ch. 8: Virtual Memory. Page Replacement Algorithms. Chapter Objectives. Agenda. Page Replacement Algorithms

SISTEM OPERASI. Deskripsi Proses. Multiprogramming. Istilah dalam Proses. (multitasking) MANAJEMEN PROSES. Multiprogramming.

Proses Control Block. Tugas Sistem Operasi

Sistem I/O. Hardware I/O Interface Aplikasi I/O Subsystem Kernel I/O Transformasi Permintaan (Request) I/O ke Operasi Hardware Stream Unjuk Kerja

Tujuan Pembelajaran. Memahami proses swapping Memahami proses alokasi memori berurutan (Contiguous Memori Allocation)

Sistem Operasi. Proses (Process) 2016

GARIS GARIS BESAR PROGRAM PENGAJARAN/GBPP (Rencana Kegiatan Belajar Mengajar)

Transkripsi:

THREADS PADA WINDOWS Julius Bata / 309012 THREADS Threads dapat dikatakan sebagai suatu atau beberapa kegiatan dalam suatu proses. Threads merupakan unit terkecil dari suatu proses yang dapat dijadwalkan oleh suatu sistem operasi. Suatu thread memiliki : - Thread ID - Program counter - Register set - Stack Suatu threads berbagi memory, code section, data section dan sumber daya sistem operasi dengan threads lainnya yang berada pada proses yang sama. Keuntungan dari adanya threads - Pembuatan thread baru lebih cepat dari pada proses baru, - Penghentian thread lebih singkat daripada penghentian proses, - Switching antara dua thread lebih singkat daripada switching antar proses, - Thread dapat berkomunikasi satu sama lain. User Threads User threads merupakan threads yang berjalan pada user level. Pengaturan dan penjadwalan dari thread ini sepenuhnya dilakukan pada user level tanpa campur tangan dari kernel level. Setiap proses memiliki thread table untuk menyimpan informasi thread yang dimilikinya. User threads secara umum lebih ringan dalam proses pembentukan dan penjadwalan. Akan tetapi tidak dapat berjalan secara multi threading. Gambar 1. User Threads

Kernel Threads Kernel threads merupakan threads yang dicipatakan dan berjalan pada kernel level. Penjadwalan dan manajemen dilakukan oleh kernel pada kernel level. Kernel threads sering disebut juga proses yang ringan (Lightweight Process/LWP). Kernel threads lebih lambat proses pembentukan dan penjadwalan jika dibandingan dengan user threads. Kernel threads mendukung multithreading dimana beberapa thread dapat dijalankan dalam waktu yang bersamaan. Gambar 2. Kernel Threads Terdapat relasi diantara user threads dan kernel threads. Relasi ini secara umum dapat dimodelkan menjadi 3 bentuk yaitu : 1. Many-to-One Many-to-One model memetakan semua user thread ke dalam satu kernel thread. Manajemen pengaturan thread dilakukan pada user level sehingga kinerja lebih cepat. Kekurangannya adalah jika suatu thread melakukan blocking maka thread yang lain tidak dapat berjalan. Hanya satu thread yang dapat dijalankan pada satu waktu. 2. One-to-One Satu user thread memiliki satu kernel thread. Keuntungan dari model ini adalah lebih dari satu thread dapat berjalan secara bersamaan. Jika satu thread melakukan blocking, thread yang lain tetap dapat berjalan. Karena setiap penciptaan user thread harus dibarengi dengan kernel thread maka model ini cenderung lebih lambat dibandingkan dengan many-to-one.

3. Many-to-Many Memetakan beberapa user thread ke dalam sejumlah kernel thread, dimana jumlah kernel thread yang dapat digunakan sama atau lebih sedikit dari jumlah user thread. Pada model ini hanya satu thread yang dapat dijadwalkan oleh kernel thread dalam satu waktu. THREADS PADA WINDOWS Windows mengunakan Win32 API sebagai API utama dalam hampir semua sistem operasi Microsoft. Selain itu windows mengimplementasi model relasi One-to-One, dimana terdapat satu kernel thread yang berasosiasi dengan masing masing user thread. Thread pada windows secara umum mempunyai komponen sebagai berikut : Thread ID Register set User stack dan kernel stack Private storage area. Register set, stacks dan private data storage disebut sebagai context dari sebuah thread. Struktur data utama dari sebuah thread : ETHREAD (executive thread block) KTHREAD (kernel thread block) TEB (thread environment block) ETHREAD (executive thread block) KTHREAD TEB Create and exit time Process ID EPROCESS Thread start address Access token Impersonation Information LPC message Information Timer information Pending I/O request Gambar 3. Struktur ETHREAD

Bagian penting dari ETHREAD adalah KTHREAD, Process ID, Thread start address. Blok KTHREAD merupakan pointer yang merujuk pada kernel thread (KTHREAD), Process ID juga merupakan suatu pointer yang menunjuk pada proses utama yang memiliki thread tersebut dan Thread start address adalah alamat dari rutin awal thread. KTHREAD (kernel thread block) Dispatcher header Total user time Total kernel time Kernel stack information Thread-scedulling information Trap frame System service table Thread local storage array Synchronization information List of pending APCs Timer block and wait block List of objects thread is waiting on TEB KTHREAD menyimpan informasi yang dibutuhkan oleh kernel untuk dapat melakukan penjadwalan dan sinkronisasi thread. Pada KTHREAD juga terdapat kernel stack, yang mana akan digunakan ketika thread berjalan pada kernel mode. Juga terdapat pointer yang menunjuk TEB. TEB (thread environment block) Gambar 4. Struktur KTHREAD TEB menyimpan informasi image loader dan beberapa DLLs dari windows. Komponen - komponen ini berjalan pada user mode, maka dibutuhkan suatu struktur data yang dapat dimanipulasi(writable) pada user mode. Oleh karena itu, tidak seperti KTHREAD dan ETHREAD yang berada pada kernel space, TEB berada pada user space.

Exception list Stack base Stack limit Thread ID Active RPC handle LastError value Count of owned critical section Current locale User32 client information GDI32 information OpenGL information TLS array Subsystem thread information block Fiber information PEB Winsock data Gambar 5. Struktur TEB ETHREAD Thread start address Pointer to parent process KTHREAD Scheduling and synchronization information Kernel stack TEB Thread identifier user stack Thread-local storage Kernel space User space Gambar 6. Struktur Data Thread Windows XP

Proses Pembentukan Thread Sebelum sebuah thread dibuat, diperlukan stack dan context dimana thread akan dijalankan. Proses pembentukan stack dilakukan dengan pemanggilan fungsi CreateThread. Fungsi ini terdapat dalam Kernel32.dll. Process manager akan mengalokasikan space untuk object dari thread yang baru dan memanggil kernel untuk membuat kernel thread block. Berikut ini langkah langkah pembentukan thread : 1. Memanggil fungsi CreateThread membuat stack untuk thread pada user-level. 2. Thread's hardware context diinilisasi oleh CreateThread. 3. Fungsi NtCreateThread dipanggil untuk membuat executive thread object. NtCreateThread memanggil fungsi PspCreateThread dan menjalankan proses proses berikut : Thread count pada program/proses akan dinaikan 1. Executive thread block (ETHREAD) dibuat dan diinisialisasi. Thread ID dibuat untuk thread yang baru TEB di setup (user- mode) Thread start address pada user-mode disimpan dalam ETHREAD Fungsi KelnitThread dipanggil untuk membuat KTHREAD block. KelnitThread mengalokasikan kernel stack dan inisialisasi machinedependent hardware context termasuk didalamnya context, trap, dan exception frames. Thread access token di set sesuai dengan proces acces token dan akan dicek apakah program/proces tersebut memiliki hak untuk membuat thread atau tidak. Proses cek ini akan selalu berhasil jika thread yang diciptakan bersifat lokal, dimana thread yang diciptakan masih berada dalam program/proces yang sama. Kemungkinan gagal jika thread yang akan dibuat untuk program/proces yang lain. 4. Thread baru diinformasikan oleh CreateThread kepada Windows subsystem dan subsystem melakukan beberapa proses setup untuk thread yang baru. 5. Thread handle dan thread ID dikembalikan kepada proses/program yang membuat thread tersebut. 6. Thread dijalankan.

KESIMPULAN Windows dalam mengimplementasikan thread memakai model One-to-One. Sehingga windows mendukung multithreading. Win32 API adalah pustaka thread yang digunakan oleh windows. Struktur data utama dalam thread windows : ETHREAD (executive thread block), KTHREAD (kernel thread block) yang keduanya berada pada kernel-level dan TEB (thread environment block) yang berada pada user-level. DAFTAR PUSTAKA http://en.wikipedia.org/wiki/windows_api http://en.wikipedia.org/wiki/thread_(computer_science) Russinovich, M., and Solomon, D. Microsoft Windows, Internals Fourth Edition: Microsoft Windows Server 2003, Windows XP, and Windows 2000. Microsoft Press, 2005. hal 289 322 Silberschatz, A., Galvin, P., Gagne, G. 2004. Operating Systems Concepts with Java. Sixth Edition. John Wiley & Sons. hal 181-212