PROSES & THREADS 2 AGUS PAMUJI
SISTEM OPERASI - Proses & Threads
1
Hubungan antara proses • Proses yang kooperatif
Concurrent Process Proses yang bersifat simultan
Independent Process
Tidak terpengaruh / dipengaruhi oleh proses lain
Cooperating Process
terpengaruh / dipengaruhi oleh proses lain
SISTEM OPERASI - Proses & Threads
2
contoh P0 menunggu printer P1 menunggu disk drive
Meskipun p1 dibelakang p0 , apabila disk drive ngangur, P1 bisa dieksekusi terlebih dahulu
Sebaliknya , jika saling bekerja sama maka saling mempengaruhi.
SISTEM OPERASI - Proses & Threads
3
4 alasan Proses kooperatif • • • •
Pembagian Informasi. Kecepatan perhitungan Modularitas kenyamanan
SISTEM OPERASI - Proses & Threads
4
Threads
SISTEM OPERASI - Proses & Threads
5
threads • Unit dasar dari utilisasi CPU • Komponen dari threads o Id thread o Program counter o Register o Stack
SISTEM OPERASI - Proses & Threads
6
ready Threads status
blocked running terminated
SISTEM OPERASI - Proses & Threads
7
task threads
Text segment Data segment
SISTEM OPERASI - Proses & Threads
8
Komunikasi Antar Proses
Harus disebutkan nama proses secara langsung
Langsung
Komunikasi Tidak langsung Pengiriman & penerimaan via mailbox SISTEM OPERASI - Proses & Threads
9
Komunikasi secara langsung Send(P, pesan)
Mengirim pesan ke proses P
Receive(Q, pesan)
Menerima pesan dari proses Q SISTEM OPERASI - Proses & Threads
10
Komunikasi Tak Langsung Send(A, pesan)
Mengirim pesan ke mailbox A
Receive(A, pesan)
Menerima pesan dari mailbox A SISTEM OPERASI - Proses & Threads
11
Kondisi – kondisi pengecualian • Proses dihentikan Konfirmasi Gagal Proses Receive ( P )
waiting
Send ( Q )
No Action ?? Blocked
SISTEM OPERASI - Proses & Threads
12
Kehilangan Pesan • Pesan dari proses P ke proses Q bisa hilang. • Ada 3 solusi untuk masalah ini : 1.Deteksi kejadian tersebut kemudian kirim ulang. 2.Pengirim mendeteksi kejadian dan kirim ulang kembali. 3.OS deteksi kejadian tsb lalu konfirmasikan ke pengirim SISTEM OPERASI - Proses & Threads
13
• Untuk mendeteksi pesan yang hilang, digunakan time out. • Bagaimana cara deteksi kejadian ??? • OS akan menghitung interval waktu antara jawaban dengan pesan diterima. • Apabila melebihi batas waktu maka dinyatakan hilang • Pesan Terganggu adalah sama ketika pesan itu hilang SISTEM OPERASI - Proses & Threads
14
Konkurensi • Landasan umum perancangan sistem operasi. • Proses-proses disebut konkuren apabila proses-proses berada pada saat yang sama. • Masalah – masalah pada konkurensi. 1. 2. 3. 4.
Mutual Exclusion Sinkronisasi Deadlock Starvation SISTEM OPERASI - Proses & Threads
15
Prinsip-prinsip konkurensi 1. Alokasi waktu pemroses untuk proses-proses. 2. Pemakaian bersama dan persaingan untuk mendapat sumber daya. 3. Komunikasi antar proses. 4. Sinkronisasi aktifitas banyak proses.
SISTEM OPERASI - Proses & Threads
16
Kesulitan pada konkurensi • Masalah yang dihadapi proses-proses konkurensi adalah kecepatan eksekusi prosesproses disistem tidak dapat diprediksi. • Konkurensi dapat muncul pada tiga konteks berbeda antara lain : a. Banyak aplikasi b. Aplikasi terstruktur c. Struktur sistem operasi
SISTEM OPERASI - Proses & Threads
17
• Beragam kemungkinan yang terjadi tidak dapat diprediksi: 1. Kecepatan proses bergantung pada aktifitas proses lain, kebijakan penjadwalan, cara OS menangani interupsi. 2. OS harus mengetahui proses-proses yang aktif. 3. Proses konkuren harus mengalokasi & mendealokasi sumber daya. 4. OS harus memproteksi data & sumber daya fisik masing2 proses dari gangguan proses lain SISTEM OPERASI - Proses & Threads
18
Mutual Exclusion • Jaminan hanya 1 proses yang mengakses sumber daya pada interval waktu tertentu. • Sistem ini menganut sistem tunggal/single user. • Mutual exclusion terjadi pada printer. • Daemon printer adalah proses yang melakukan penjadwalan dan kendali pencetakan berkas. SISTEM OPERASI - Proses & Threads
19
• Ruang disk ini disebut direktori spooler. • Direktori spooler membagi disk menjadi sejumlah slot. • Slot diisi dengan berkas yang akan dicetak. • Terdapat variabel in sebagai slot bebas untuk penyimpanan berkas pada saat ingin dicetak. • Critical section adalah bagian program yg mengakses memory/sumber daya yang dipakai bersama. • Proses yang berada di non-critical section dilarang mengganggu proses yg ada di critical section. • Jika hal ini terjadi akan berakibat starvation dan deadlock. SISTEM OPERASI - Proses & Threads
20
Kriteria Mutual Exclusion • Mutual Exclusion harus dijamin bersifat tunggal tidak boleh ada proses lain. • Proses yang berada di non-critical dilarang memblok proses lain yang masuk ke critical section. • Ketika tidak ada proses di critical section maka proses yang ingin masuk harus diizinkan masuk tanpa ada penundaan. SISTEM OPERASI - Proses & Threads
21
Metode Untuk Menjamin ME • Metode variable lock ♣ Metode ini sederhana, ketika proses masuk critical section lebih dulu memeriksa variable lock. ♣ Jika variabel lock bernilai 0 , proses men-set variabel lock menjadi satu. ♣ Jika variabel lock bernilai 1, proses men-set variabel lock menjadi 0 ♣ Metode ini tidak menjamin proses tidak masuk critical yang telah dimasukin proses lain
SISTEM OPERASI - Proses & Threads
22
Metode Untuk Menjamin ME • Metode bergantian secara ketat – Metode ini mengansumsikan dapat mengalir masuk critical section secara terus – menerus.
SISTEM OPERASI - Proses & Threads
23
Sinkronisasi • Producer-consumer yang disebut bounded buffer problem(masalah buffer yang terbatas). • Dua proses mempunyai buffer bersama. • Satu proses adalah producen yang meletakan informasi ke buffer. • Proses lainnya adalah consumer yang mengambil informasi dari buffer. SISTEM OPERASI - Proses & Threads
24
konsumen
Producen
Buffer A
B
• Gambar A terlihat buffer penuh • Gambar B terlihat buffer kosong
SISTEM OPERASI - Proses & Threads
25
Masalah pada buffer • Petaka untuk producer Petaka ini terjadi apabila buffer penuh, sementara producer ingin meletakan informasi. • Petaka untuk konsumen Petaka ini terjadi ketika konsumen mengambil informasi sementara buffer kosong
SISTEM OPERASI - Proses & Threads
26
Penyebab Masalah Buffer • Transmisi kecepatan tinggi • Sinkronisasi dilakukan sebelum data dikirim maupun tidak ada data yang dikirim. • Pengiriman dalam bentuk block data dengan panjang 240 karakter.
SISTEM OPERASI - Proses & Threads
27