Anda di halaman 1dari 24

Proses dan Thread 2

Sy.yuliani

http://www.sy-yuliani.com/ 1
Resume / Pendahuluan

Apa bedanya Proses dan Thread !


Apa itu Kernel?
Apa itu concurrency pada sistem
operasi? Mengapa hal tersebut
sangat dibutuhkan pada sistem
operasi?

http://www.sy-yuliani.com/ 2
Thread

pecahan dari suatu proses yang dapat


dijadualkan atau dieksekusi
lightweight process (LWP)

http://www.sy-yuliani.com/ 3
Yg dimiliki oleh thread
Status eksekusi thread (running, ready, dll.)
Simpanan konteks thread (pada saat tidak
running)
Stack eksekusi
Beberapa storage statis untuk menyimpan
variabel lokal
Hak akses ke memori dan resource yang
dimiliki oleh proses misalkan memori dan
resource digunakan bersama-sama oleh
semua thread dari sebuah proses (share)
http://www.sy-yuliani.com/ 4
OS tradisional Vs OS Modern

OS tradisional:
Satu proses hanya terdiri dari satu thread
MS-DOS: hanya satu proses dan tiap proses
hanya satu thread
UNIX tradisional: banyak proses, tetapi tiap
proses hanya satu thread

OS modern:
Banyak proses dan tiap proses terdiri dari
banyak thread
Misal: Windows, Solaris, Linux, Mach, dan OS/2

http://www.sy-yuliani.com/ 5
Multithreading

kemampuan sistem operasi dalam


mengeksekusi banyak thread yang
berasal dari sebuah proses

http://www.sy-yuliani.com/ 6
Model Thread

http://www.sy-yuliani.com/ 7
Manfaat Thread

Pembentukan suatu thread jauh lebih


cepat daripada pembentukan proses
baru
Terminasi suatu thread jauh lebih
cepat daripada terminasi proses
Perpindahan eksekusi antar thread
jauh lebih cepat
Antar thread dapat berkomunikasi
tanpa melibatkan kernel
http://www.sy-yuliani.com/ 8
Contoh Penggunaan Thread

Aktifitas foreground dan background


MS Excell: tiap satu tugas dilakukan oleh satu thread:
Tampilkan menu
Baca inputan dari user
Eksekusi perintah user
Update data
Pemrosesan Asynchronous
MS Word: proteksi data jika listrik tiba-tiba padam
Ada thread yang tugasnya khusus untuk melakukan
penyimpanan data dari RAM ke harddisk secara periodik
Jadual thread langsung dikendalikan oleh sistem
operasi

http://www.sy-yuliani.com/ 9
RPC (remote Procedure Call)

RPC merupakan cara berinteraksi


antara 2 buah program yang
dieksekusi pada mesin yang
sama/berbeda dengan menggunakan
semantik dan sintaks procedure
call/return

http://www.sy-yuliani.com/ 10
RPC thread tunggal

Keterangan gambar:
Sebuah program melakukan 2 buah RPC pada 2 buah
host/server berbeda untuk mendapatkan suatu hasil
gabungan
Kedua RPC harus dilakukan secara bergantian lama

http://www.sy-yuliani.com/ 11
RPC multithread

Keterangan Gambar :
Request dari thread A dan thread B dapat dieksekusi
hampir bersamaan pada server yang berbeda
Hasil lebih cepat dibanding hanya dengan single
thread

http://www.sy-yuliani.com/ 12
Multithread uniprocessor

Keterangan gambar :
Pada uniprogramming suatu thread bisa
dieksekusi bila thread yang sedang dieksekusi
ter-blok atau karena time out
Mirip dengan proses

http://www.sy-yuliani.com/ 13
Mode Eksekusi

Paling sedikit diperlukan 2 mode, mengapa ?


Untuk melindungi program dan struktur data OS dari
pengaksesan oleh program user
User mode (Less-privileged mode)
Adalah mode saat program user sedang dieksekusi oleh prossesor
Kernel mode (System mode = Control mode = More-
privileged mode)
Adalah mode saat bagian program sistem operasi sedang
dieksekusi
Contoh:
Membaca atau mengubah control register
Instruksi I/O primitif
Instruksi yang berhubungan dengan manajemen memori
Pengaksesan area memori tertentu

http://www.sy-yuliani.com/ 14
Jenis Thread

User-Level Thread (ULT)


Semua manajemen thread dilakukan oleh
program aplikasi
Tidak ada code program untuk mengatur thread
pada program kernel
Kernel-Level Thread (KLT)= kernel supported
threads = lightweight process
Semua manajemen thread dilakukan oleh kernel
Tidak ada code program untuk mengatur thread
pada program aplikasi

http://www.sy-yuliani.com/ 15
Jenis Thread

http://www.sy-yuliani.com/ 16
ULT dan KLT

http://www.sy-yuliani.com/ 17
Kelebihan KLT dan ULT

http://www.sy-yuliani.com/ 18
Kekurangan KLT dan ULT

http://www.sy-yuliani.com/ 19
Konkurensi

Konkurensi adalah kebersamaan.


Konkurensi diperlukan untuk sistem-
sistem
multiprogramming,
multiprosesing, dan
distributed prosesing

http://www.sy-yuliani.com/ 20
Ruang lingkup
Concurency
Komunikasi antar proses
Sharing dan kompetisi penggunaan
resource
Sinkronisasi antar berbagai proses
Pengalokasian waktu prosesor untuk
setiap proses

http://www.sy-yuliani.com/ 21
Istilah-istilah yang berhubungan
dengan concurency

Critical section:
Resource yang dalam satu waktu hanya boleh diakses
oleh satu proses saja
Contoh resource: printer, baris-baris program, file, dll
Deadlock:
Keadaan dimana dua proses atau lebih tidak dapat
meneruskan eksekusi akibat saling menunggu aksi/data
Livelock:
Keadaan dimana dua proses atau lebih saling mengubah
status sebagai respon terhadap perubahan status proses
yang lain tanpa mengerjakan pekerjazaan yang berarti

http://www.sy-yuliani.com/ 22
Istilah-istilah yang berhubungan
dengan concurency

Mutual exclusion:
Syarat/kondisi yang harus dipenuhi untuk mencegah
terjadinya pengaksesan critical section oleh lebih dari satu
proses dalam satu saat
Race condition:
Keadaan dimana terdapat banyak thread atau proses
mengakses data bersama (shared data) yang
menyebabkan hasil akhir sulit dipastikan (bergantung pada
lama waktu eksekusi setiap proses)
Starvation:
Keadaan dimana suatu proses yang siap dieksekusi terus
menerus tidak diberi kesempatan untuk melakukan aksinya

http://www.sy-yuliani.com/ 23
Pustaka
Stallings, William. 2009. Operating
System: Internal and Design
Principles. 6th edition. Prentice Hall

http://www.sy-yuliani.com/ 24