Implementasi Proses

advertisement
Pertemuan 4
Manajemen Proses 2
STRUKTUR KENDALI SO
• PENGERTIAN
• Struktur data yang dibentuk dan di pelihara oleh SO yang menyimpan
informasi mengenai setiap sumber daya yang dikelolanya
• Gambar
Proc
Proc
Proc
Process Image
Proc
Keterangan gambar
• Tabel Memory
•
•
•
•
Alokasi memory utama untuk proses-proses
Alokasi memory maya untuk proses
Atribut proteksi terhadap memory
Informasi yang diperlukan untuk mengatur memory
• Tabel I/O
• Mencatat status piranti I/O
• Mengetahui apakah saluran sistem komputer dalam keadaan bebas
atau sedang terpakai
• Penyalinan/pembacaan data I/O di memory utama
• Tabel Berkas
• Mencatat informasi berkas yang diakses oleh proses: lokasinya di
memory, statusnya , hak akses, serta atribut berkas lainnya
• Tabel proses
• Mencatat informasi mengenai status dari setiap proses
Image Proses
• Adalah keseluruhan lokasi memory yang digunakan untuk
eksekusi suatu proses
• Proses image dapat berupa :
• Sebuah blok berurutan (contigous block)
• Blok dengan ukuran bervariasi (segmentasi)
• Blok dengan ukuran sama (halaman)
• Kombinasi antara segmentasi & halaman
(hybrid)
• Elemen image proses
• Data Pengguna (user data)
• Image proses yang dapat di modifikasi, meliputi
data program
• Kode program (user program)
• Image proses yang menyimpan kode instruksi
program yang akan di eksekusi
• Sistem Stack (user stack)
• Struktur data yang bekerja berdasarkan proses
LIFO
• Process Control Block (PCB)
• Menyimpan informasi yang diperlukan SO untuk
mengontrol/mengelola proses
STRUKTUR CITRA/IMAGE
PROSES
Identifikasi Proses
Informasi status proses
Informasi kendali proses
Stack pemakai
Ruang alamat yang khusus
diperuntukkan pemakai
(program, data)
Ruang alamat bersama
PCB
INFORMASI IDENTIFIKASI PROSES
• Berkaitan dengan identitas proses yang unik
• Dengan identifier ini proses dikaitkan ke tabel-tabel lain
• Identifiernya adalah numerik yang meliputi
• Identifier proses
• Identifier proses yang menciptakan
• Identifier pemakai
INFORMASI STATUS PROSES
• Informasi ini esensinya terdiri dari register-register pemroses.
• Saat proses berstatus running, informasi-informasi ini berada
di register.
• Ketika proses diinterupsi semua informasi register harus
disimpan agar dapat dikembalikan saat proses dieksekusi
kembali
• Jumlah dan
komputernya
ragam
register
bergantung
pada
arsitektur
• Elemen process control information :
• Schedulling & state infromartion
• Berisi infromasi untuk penjadwalan, status proses,
prioritas,identitas event
• Data structuring
• Berisi link dengan proses lain dalam suatu baris
• Interprocess communication
• Flag, signal dan pesan yang digunakan untuk komunikasi
antar proses.
• Process privilages
• Kewenangan proses atas memori dan tipe instruksi
• Memory management
• Pointer ke tabel segmen ataupun tabel halaman dari
memori maya
• Resource ownership & utilization
• Berisi sejarah pengguanaan sumber daya yang akan
digunakan untuk penjadwalan
PROCESS CONTROL BLOCK
Setiap proses digambarkan dalam sistem operasi oleh sebuah process
control block (PCB) – juga disebut sebuah control block.
Gambar Process Control Block
PROCESS CONTROL BLOCK (cont.)
• PCB berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesifik,
termasuk hal-hal di bawah ini:
Status Proses
Program counter
CPU Register
Informasi Manajemen Memori
Informasi pencatatan
KARAKTERISTIK PROSES
• Unit of resource ownership
Memakai sebuah alamat virtual,
memakai memory utama selama
proses dan diberi kendali terhadap
sumber daya
• Unit of dispathing/thread
Proses yang memakai satu jalur
eksekusi(trace)
Penjadual / Schedulers
• Long-term scheduler (or job scheduler) – memilih proses/program
yang mana yang akan di load dan berada di ready queue.
• Kemungkinan terdapat proses atau job baru.
• Kemungkinan proses dipindahkan dari memori ke disk (swap out).
• Short-term scheduler (or CPU scheduler) – memilih proses yang
mana yang berada di ready queue akan “run” (mendapatkan jatah
CPU).
13
Penjadual / Schedulers (Cont.)
• Long-term scheduler tidak sering (proses baru) (seconds, minutes)
=> (may be slow).
• => berapa banyak proses yang dapat aktif (berada di memori)
• Short-term scheduler dijalankan sangat sering (milliseconds) =>
giliran pemakaian CPU dari proses- proses yang siap
• Pada saat terjadi penggantian alokasi CPU dari satu proses ke proses
lain:
• Menyimpan informasi internal CPU dari proses yang akan digantikan
(SAVE).
• Meload kembali informasi internal CPU dari proses yang akan
menggantikan.
• Dikenal dengan istilah: context switch proses.
14
Sinkronisasi Proses
• Proses-proses yang konkuren adalah proses-proses (lebih dari
satu) berada pada saat yang sama. Proses-proses ini dapat
sepenuhnya tak bergantung dengan yang lainnya, tapi dapat
juga saling berinteraksi. Proses-proses yang berinteraksi
memerlukan sinkronisasi agar terkendali dengan baik.
• Akses-akses yang dilakukan secara bersama-sama ke data yang
sama, dapat menyebabkan data menjadi tidak konsisten.
• Untuk menjaga agar data tetap konsisten, dibutuhkan
mekanisme-mekanisme untuk memastikan pemintaan
ekseskusi dari proses yang bekerja.
Sinkronisasi Lanjt.
• Race Condition: Keadaan dimana lebih dari satu proses mengupdate data secara “concurrent” dan hasilnya sangat bergantung
dari urutan proses mendapat jatah CPU (run)
• Hasilnya tidak menentu dan tidak selalu benar
• Untuk menghindari Race Condition, proses-proses secara
bersamaan harus disinkronisasikan dalam mengupdate shared
data
• Dalam beberapa sistem operasi, proses-proses yang berjalan
bersamaan mungkin untuk membagi beberapa penyimpanan
umum, masing-masing dapat melakukan proses baca (read) dan
proses tulis (write). Penyimpanan bersama (shared storage)
mungkin berada di memori utama atau berupa sebuah berkas
bersama, lokasi dari memori bersama tidak merubah kealamian
dari komunikasi atau masalah yang muncul
Race condition
Critical section
• Kunci untuk mencegah masalah ini yaitu melibatkan shared
memori, shared berkas, and shared sumber daya yang lain
• Setiap proses mempunyai “code” yang mengakses/ manipulasi
shared data tersebut => “critical section”
• Kesulitan yang terjadi karena proses 2 mulai menggunakan
variabel bersama sebelum proses 1 menyelesaikan tugasnya.
• “eksekusi” pada bagian “critical section” tidak ada proses lain
yang diperbolehkan masuk ke “code” critical section dari proses
tersebut
solusi
•
Solusi “critical section problem” harus memenuhi:
1. Mutual Exclusion: Jika proses Pi sedang “eksekusi” pada
bagian “critical section” (dari proses Pi) maka tidak ada
proses proses lain dapat “eksekusi” pada bagian critical
section dari proses-proses tersebut.
2. Progress: Jika tidak ada proses sedang eksekusi pada critical
section-nya dan jika terdapat lebih dari satu proses lain yang
ingin masuk ke critical section, maka pemilihan siapa yang
berhak masuk ke critical section tidak dapat ditunda tanpa
terbatas.
Solusi Lanjt.
3. Bounded Waiting: Terdapat batasan berapa lama
suatu proses harus menunggu giliran untuk
mengakses “critical section” – jika seandainya
proses lain yang diberikan hak akses ke critical
section.
• Menjamin proses dapat mengakses ke “critical
section” (tidak mengalami starvation: proses seolah berhenti menunggu request akses ke critical
section diperbolehkan).
• Tidak ada asumsi mengenai kecepatan eksekusi
proses proses n tersebut.
Solusi Sederhana : Kasus 2 proses
• Hanya 2 proses
• Struktur umum dari program code Pi dan Pj:
• Software solution: merancang algoritma program untuk solusi
critical section
• Proses dapat mengunakan “common var.” untuk menyusun
algoritma tsb.
21
Algoritma 1
• Shared variables:
• int turn;
initially turn = 0
• turn - i  Pi dapat masuk ke criticalsection
• Process Pi
do {
while (turn != i) ;
critical section
turn = j;
reminder section
} while (1);
• Mutual exclusion terpenuhi, tetapi menentang progress
22
Algoritma 2
• Shared variables
• boolean flag[2];
initially flag [0] = flag [1] = false.
• flag [i] = true  Pi siap dimasukkan ke dalam critical section
• Process Pi
do {
flag[i] := true;
while (flag[j]) ;
critical section
flag [i] = false;
remainder section
} while (1);
• Mutual exclusion terpenuhi tetapi progress belum terpenuhi.
23
Algoritma 3
• Kombinasi shared variables dari algoritma 1 and 2.
• Process Pi
do {
flag [i]:= true;
turn = j;
while (flag [j] and turn = j) ;
critical section
flag [i] = false;
remainder section
} while (1);
• Ketiga kebutuhan terpenuhi, solusi masalah critical
section pada dua proses
24
Masalah?
• Bagiamana jika banyak proses? (n proses)
tugas
1. Pada critical section , ada tiga hal yang harus dipenuhi,
sebutkan dan jelaskan !
2. Bagaimana algoritma Bakery untuk sinkronisasi banyak proses
(n proses) ?
3. Apa yang dimaksud semaphore dan sebutkan operasi pada
semaphore
4. Bagaimana struktur semaphore yang digunakan untuk
menyelesaikan permasalahan :
a. bounded buffer problem.
b. reader and writer problem.
c. dining philosopher problem.
Slide -> http://bit.ly/so-slide4
Download