Komunikasi antar proses berbagi sumber daya, Sinkronisasi beberapa proses, Alokasi waktu prosesor
7.2 Masalah Saat Concurrency
a.. Berbagi sumber daya global
b. Pengelolaan alokasi sumber daya
c. Pemrograman kesalahan sulit untuk menemukan
Contoh :
void
echo()
{
chin = getchar();
chout
= chin;
putchar(chout);
}
Process
P1 Process P2
in
= getchar(); in = getchar();
chout
= chin; chout
= chin;
putchar(chout); putchar(chout); 7.3 O/S Concern
a. Melacak proses yang aktif
b. Mengalokasikan dan DEALLOCATE sumber
waktu prosesor
ingatan
arsip
I / O
c. Melindungi data dan sumber
d Hasil proses harus independen dari kecepatan eksekusi proses konkuren lainnya
7.4 Kerjasama antara Proses
a. Dengan Berbagi
-> Menulis harus saling eksklusif
-> Bagian penting yang digunakan untuk menyediakan integritas data
b. Dengan Komunikasi
->Pesan yang melewati
->Mutual exclusion bukan persyaratan kontrol
->Mungkin untuk memiliki kebuntuan
->Setiap proses menunggu pesan dari proses lainnya
->.Mungkin untuk memiliki kelaparan
->Dua proses mengirim pesan satu sama lain sementara proses lain menunggu pesan
7.5 Mutual Exclusion by Busy Waiting
a. Menonaktifkan interupsi
b. Variabel kunci
c. Pergantian ketat
d. Solusi Peterson
e. Instruksi TSL
7.6 Semaphore
Variabel khusus yang disebut semaphore digunakan untuk sinyal. Jika suatu proses menunggu sinyal, itu ditangguhkan sampai sinyal yang dikirimkan. Tunggu dan operasi sinyal tidak dapat terganggu
Antrian digunakan untuk menyimpan proses menunggu di semaphore. Semaphore adalah variabel yang memiliki nilai integer. Mungkin diinisialisasi ke nomor nonnegatif. Operasi menunggu decrements nilai semaphore. Operasi sinyal increment nilai semaphore
7.7 Masalah klasik IPC
Dining Philosopher’s Problem :
a. Philosophers eat/think
b. Eating needs 2 forks
c. Pick one fork at a time
d. How to prevent deadlock
8.1 Monitors
Pemrograman konstruksi bahasa yang mendukung akses dikendalikan ke data bersama
Compiler menambahkan sinkronisasi otomatis
Ditegakkan saat runtime merangkum. Struktur data bersama
Prosedur / fungsi yang beroperasi pada data. Sinkronisasi antara proses memanggil prosedur tersebut. Hanya satu proses aktif dalam monitor pada setiap saat
Semua prosedur merupakan bagian dari bagian kritis
Untuk memungkinkan proses untuk menunggu di dalam monitor, variabel kondisi harus dinyatakan, sebagai
Kondisi x;
Variabel kondisi hanya dapat digunakan dengan operasi menunggu dan sinyal.
operasi
menunggu (x);? berarti bahwa proses memohon operasi ini ditunda sampai memanggil proses lain
sinyal (x);
Operasi sinyal resume tepat satu proses ditangguhkan. Jika tidak ada proses ditunda, maka operasi sinyal tidak berpengaruh.
8.2 Message Passing
Mengkomunikasikan informasi dari satu proses lain melalui: -mengirim (dest, & pesan)
menerima (sumber, & pesan).
Penerima dapat menentukan APAPUN. Receiver dapat memilih untuk memblokir atau tidak
Berlaku untuk single dan multi-processor dan sistem terdistribusi. Pre-tanggal Semaphore
Tidak memerlukan ruang alamat bersama!
a. kirim () operasi
sinkronis
Pengembalian setelah data dikirim
Blok jika buffer penuh
asynchronous
Pengembalian secepat I / O mulai
Selesai?
cek eksplisit
Sinyal atau pengakuan
Blok jika buffer penuh (mungkin)
b. menerima () operasi
sinkronis
Pengembalian jika ada pesan
Blok jika tidak
asynchronous
Pengembalian pesan 1 jika ada satu
Pengembalian indikasi jika ada pesan
Komunikasi tidak langsung - kotak surat. Pesan akan dikirim ke daerah bernama - kotak.
Proses membaca pesan dari kotak surat. Mailbox harus diciptakan dan dikelola. Blok pengirim jika kotak penuh. Memungkinkan banyak-banyak komunikasi
Dalam satu mesin dan di antara mesin
MACH (CMU)
GEC 4080 (British telpehoneexchanges )
8.3 Message passing Issues
a. Pesan orak (checksum)
b. Pesan hilang (pengakuan)
c. Kehilangan pengakuan (urutan no.)
d. Tujuan unreachable (bawah, berakhir)
e. penamaan
f. pembuktian keaslian
g. Kinerja (menyalin, bangunan pesan)
www.binus.ac.id
www.skyconnectiva.com
Tidak ada komentar:
Posting Komentar