SISTEM
OPERASI
MANAJEMEN
PROSES
Disusun
oleh:
Anindah
Martianingrum (10116893)
Bayu
Andreansyah (11116350)
Hendrawan
L (13116266)
Izzat
Zulia R (13116657)
Nurasyah
(15116570)
Reiza
Fauzi R (16116162)
JURUSAN
SISTEM INFORMASI
UNIVERSITAS
GUNADARMA
2018
DAFTAR ISI
MANAJEMEN
PROSES
1. KONSEP
DASAR............................................................................. 1
2. KONSEP
PENJADUALAN.............................................................. 3
3. OPERASI
PADA PROSES................................................................ 7
4. PROSES
YANG SALING BEKERJASAMA................................... 10
5. THREADS...................................................................................... 11
6. KOMUNIKASI
ANTAR PROSES.................................................. 12
7. BUFFERING.................................................................................. 14
8. KONDISI-KONDISI
PERKECUALIAN......................................... 14
MANAJEMEN PROSES
1.
KONSEP DASAR
1.1 Definisi Proses
Terdapat
beberapa definisi mengenai proses, antara lain :
a.
Merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses
adalah masalahutama dalam perancangan sistem operasi.
b.
Proses adalah program yang sedang dieksekusi.
c.
Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan
dijadwalkan olehsistem operasi.
1.2 Status Proses
Sebagaimana
proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal).
Status dari
sebuah
proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut.
Tiap proses mungkinadalah satu dari keadaan berikut ini:
·
New: Proses sedang
dikerjakan/ dibuat.
·
Running: Instruksi sedang
dikerjakan.
·
Waiting: Proses sedang
menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/Oatau
penerimaan sebuah tanda/ signal).
·
Ready: Proses sedang
menunggu untuk ditugaskan pada sebuah prosesor.
·
Terminated: Proses telah
selsesai melaksanakan tugasnya/ mengeksekusi.
Nama-nama
tersebut adalah arbitrer/ berdasar opini, istilah tersebut bervariasi
disepanjang sistemoperasi. Keadaan yang mereka gambarkan ditemukan pada seluruh
sistem. Namun, sistem operasi tertentujuga lebih baik menggambarkan keadaan/
status proses. Adalah penting untuk menyadari bahwa hanya satuproses dapat
berjalan pada prosesor mana pun pada waktu kapan pun. Namun, banyak proses yang
dapatready atau waiting.
1.3 Proses Control Block (PCB)
Tiap
proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB)
- juga
disebut
sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 2. PCB berisikan
banyak bagian dariinformasi yang berhubungan dengan sebuah proses yang
spesifik, termasuk ini:
·
Keadaan proses: Keadaan
mungkin, new, ready, running, waiting, halted, dan juga banyaklagi.
·
Program counter: Counter
mengindikasikan address dari perintah selanjutnya untuk dijalankanuntuk proses
ini.
·
CPU register: Register
bervariasi dalam jumlah dan jenis, tergantung pada rancangan
komputer.
·
Register tersebut
termasuk accumulator, index register, stack pointer, general-purposes
register,
ditambah code information pada kondisi apa pun. Besertaan dengan program
counter,keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk
memungkinkanproses tersebut berjalan/bekerja dengan benar setelahnya (lihat
Gambar 3).
·
Informasi managemen
memori: Informasi ini dapat termasuk suatu informasi sebagai nilai daridasar
dan batas register, tabel page/ halaman, atau tabel segmen tergantung pada
sistemmemori yang digunakan oleh sistem operasi.
·
Informasi pencatatan:
Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan,batas
waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
·
Informasi status I/O:
Informasi termasuk daftar dari perangkat I/O yang digunakan padaproses ini,
suatu daftar open berkas dan banyak lagi.
·
PCB hanya berfungsi
sebagai tempat menyimpan/ gudang untuk informasi apapun yang dapatbervariasi
dari prose ke proses.
2.1
Scheduling Queue
Ketika
proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini
terdiri dari seluruhproses dalam sistem. Proses yang hidup pada memori utama
dan siap dan menunggu/ wait untukmengeksekusi disimpan pada sebuah daftar
bernama ready queue. Antrian ini biasanya disimpan sebagaidaftar penghubung.
Sebuah header ready queue berisikan penunjuk kepada PCB-PCB awal dan akhir.
SetiapPCB memiliki pointer field yang menunjukkan proses selanjutnya dalam
ready queue.Juga ada antrian lain dalam sistem. Ketika sebuah proses
mengalokasikan CPU, proses tersebutberjalan/bekerja sebentar lalu berhenti, di
interupsi, atau menunggu suatu kejadian tertentu, sepertipenyelesaian suatu
permintaan I/O. Pada kasus ini sebuah permintaan I/O, permintaan seperti itu
mungkinuntuk sebuah tape drive yang telah diperuntukkan, atau alat yang
berbagi, seperti disket. Karena ada banyakproses dalam sistem, disket bisa jadi
sibuk dengan permintaan I/O untuk proses lainnya. Maka prosestersebut mungkin
harus menunggu untuk disket tersebut. Daftar dari proses yang menunggu untuk
peralatanI/O tertentu disebut sebuah device queue. Tiap peralatan memiliki
device queuenya sendiri.
Reprensentasi
umum untuk suatu diskusi mengenai penjadualan proses adalah diagram
antrian,seperti pada gambar. Setiap kotak segi empat menunjukkan sebuah
antrian. Dua tipe antrianmenunjukan antrian yang siap dan suatu perangkat
device queues. Lingkaran menunjukkansumber-sumber yang melayani sistem. Sebuah
proses baru pertama-tama ditaruh dalam ready queue. Lalu menunggu dalamready
queue sampai proses tersebut dipilih untukdikerjakan/lakukan atau di
dispatched. Begitu prosestersebut mengalokasikan CPU dan menjalankan/
mengeksekusi, satu dari beberapa kejadian dapatterjadi.
·
Proses tersebut dapat
mengeluarkan sebuah permintaan I/O, lalu di tempatkan dalam sebuahantrian I/O.
·
Proses tersebut dapat
membuat subproses yang baru dan menunggu terminasinya sendiri.
·
Proses tersebut dapat
digantikan secara paksa dari CPU, sebagai hasil dari suatu interupsi,
dandiletakkan kembali dalam ready queue.
2.2 Penjadual / Scheduler
Sebuah
proses berpindah antara berbagai penjadualan antrian selama umur hidupnya.
Sistemoperasi harus memilih, untuk keperluan penjadualan, memproses
antrian-antrian ini dalam cara tertentu.Pemilihan proses dilaksanakan oleh
penjadual yang tepat/ cocok. Dalam sistem batch, sering ada lebihbanyak proses
yang diserahkan daripada yang dapat dilaksanakan segera. Proses ini dipitakan/
disimpan padasuatu alat penyimpan masal (biasanya disket), dimana
prosestersebut disimpan untuk eksekusi dilain waktu.Penjadualan long term, atau
penjadual job, memilih proses dari pool ini dan mengisinya kedalam
memorieksekusi.Sebuah proses dapatmengeksekusi untuk hanya beberapa milidetik
sebelum menunggupermintaan I/O. Seringkali, penjadualan shorterm mengeksekusi
paling sedikit sekali setiap 100 milidetik.Karena durasi waktu yang pendek
antara eksekusi, penjadualan shorterm haruslah cepat. Jikamemerlukan 10 mili
detik untuk menentukan suatu proses eksekusi selama 100 mili detik, maka
10/(100 +10) = 9 persen CPU sedang digunakan (terbuang) hanya untuk pekerjaan
penjadualan.Penjadualan longterm pada sisi lain, mengeksekusi jauh lebih
sedikit. Mungkin ada beberapa menitantara pembuatan proses baru dalam sistem.
Penjadualan longterm mengkontrol derajat multiprogramming(jumlah proses dalam
memori). Jika derajat multiprogramming stabil, lalu tingkat rata-rata dari
penciptaanproses harus sama dengan tingkat kepergian rata rata dari proses yang
meninggalkan sistem. Makapenjadualan longterm mungkin diperlukan untuk
dipanggil hanya ketika suatu proses meninggalkan sistem.Karena interval yang
lebih panjang antara eksekusi, penjadualan longterm dapat memakai waktu yang
lebihlama untuk menentukan proses mana yang harus dipilih untuk dieksekusi.
2.3 Alih Konteks / Switch Context
Mengganti
CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of
oldprocess) dan kemudian beralih ke proses yang baru. Tugas tersebut diketahui
sebagai alih konteks (contextswitch). Alih konteks sebuah proses digambarkan
dalam PCB suatu proses: termasuk nilai dari CPU register,status prosesdan
informasi managemen memori. Ketika alih konteks terjadi, kernelmenyimpan
konteks dari proses lama kedalam PCB nya dan mengisi konteks yang telah
disimpan dariprocess baru yang telah terjadual untuk berjalan. Pergantian waktu
konteks adalah murni overhead, karenasistem melakukan pekerjaan yang tidak
perlu. Kecepatannya bervariasi dari mesin ke mesin, bergantung padakecepatan
memori, jumlah register yang harus di copy, dan keberadaan instruksi khusus
(seperti instruksitunggal untuk mengisi atau menyimpan seluruh register).
Tingkat kecepatan umumnya berkisar antara 1
sampai
1000 mikro detik.
Waktu
alih konteks sangat begantung pada dukungan perangkat keras. Sebagai contoh,
prosesor
seperti
UltraSPARC menyediakan dua rangkap register.
Sistem
operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap
proses.Operasi tersebutadalah :
a.
Penciptaan proses
b.
Penghancuran/terminasi proses
c.
Penundaan proses
d.
Pelanjutan kembali proses
e.
Pengubahan prioritas proses
f.
Memblok proses
g.
Membangunkan proses
h.
Menjadwalkan proses
i.
Memungkinkan proses berkomunikasi dengan proses lain
3. OPERASI PADA PROSES
3.1 Pembuatan Proses
Melibatkan
banyak aktivitas, yaitu :
a.
Memberi identitas proses
b.
Menyisipkan proses pada senarai atau tabel proses
c.
Menentukan prioritas awal proses
d.
Menciptakan PCB
e. Mengalokasikan sumber daya awal bagi proses
Kejadian yang dapat menyebabkan penciptaan
proses :
·
Pada lingkungan batch,
sebagai tanggapan atas pemberian satu kerja (job). Sistem operasidengan kendali
batch job, setelah menciptakan proses baru, kemudian melanjutkan membaca job
berikutnya.
·
Pada lingkungan
interaktif, ketika pemakai baru berusaha logon.
·
Sebagai tanggapan suatu
aplikasi, seperti permintaan pencetakan file, sistem operasi dapat
menciptakanproses yang akan mengelola pencetakan itu. Sistem operasi
menciptakan proses untuk memenuhi satu fungsipada program pemakai, tanpa
mengharuskan pemakai menunggu.
·
Proses penciptaan proses
lain (proses anak). Untuk mencapai modularitas ataumengeksploitasikongkurensi,
program pemakai memerintahkan pembuatan sejumlah proses.
3.2
Penghentian Proses
Yaitu tindakan yang dilakukan sistem
operasi pada saat sebuah proses telah selesai dilakukan atau dihentikan, sistem
operasi menghapus struktur data yang digunakan untuk mengelola proses dan
mengalokasikan ruang alamat ke proses itu.Suatu proses diterminasi ketika
proses tersebut telah selesai mengeksekusi perintah terakhir atau diterminasi
dengan sengaja oleh proses lain, biasanya proses induk yang melakukan hal ini.
Pada saat terminasi. Semua sumber-daya yang digunakan oleh proses akan
dialokasikan kembali oleh sistem operasi agar dapat dimanfaatkan oleh proses
lain. Suatu proses yang diterminasi karena selesai melakukan tugasnya, sistem
operasi akan memanggil system call exit() sedangkan proses yang
diterminasi dengan sengaja oleh proses lain melalui system call abort.
Biasanya proses induk melakukan terminasi sengaja pada turunannya. Alasan
terminasi yang dilakukan proses induk tersebut seperti:
- Turunan melampaui penggunaan
sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu
mempunyai mekanisme untuk memeriksa status turunannya-nya.
- Task yang ditugaskan kepada
turunan tidak lagi diperlukan.
- · Proses induk selesai, dan
sistem operasi tidak mengizinkan proses turunan untuk tetap berjalan.
Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading
termination.
Alur
Penghentian Proses adalah sebagai berikut:
- Suatu proses berhenti jika
telah menyelesaikan pernyataan terakhir, dan meminta pada sistem operasi
untuk menghapusnya dengan menggunakan system call exit.
- Proses mengembalikan semua data
(output) ke parent proses melalui system call wait.
- Kemudian proses dihapus dari
list atau tabel sistem, dilanjutkan dengan menghapus PCB.
Secara
umum, Destroyed Process dilakukan karena alasan-alasan sebagai berikut.
- Selesai secara normal. Proses mengeksekusi suatu
panggilan layanan OS untuk mengindikasikan bahwa proses tersebut telah
selesai beroperasi
- Batas waktu telah dilampaui. Proses telah berjalan lebih
lama dari jumlah batas waktu yang telah ditentukan. Terdapat beberapa
kemungkinan jenis waktu yang diukur. Jenis-jenis tersebut meliputi jumlah
waktu yang berjalan (waktu jam dinding), jumlah waktu yang dibutuhkan
untuk melakukan eksekusi, dan pada proses yang interaktif, jumlah waktu
sejak pengguna terakhir diberi input
- Memori tidak tersedia. Proses memerlukan memori
lebih banyak dari yang dapat disediakan oleh sistem
- Pelanggaran batas. Proses mencoba menakses
lokasi memori yang tidak diijinkan untuk diases
- Error proteksi. Proses mencoba
menggunakan sumber daya atau file yang tidak diizinkan untuk
digunakan, atau mencoba menggunakannya dengan cara yang salah, seperti
melakukan penulisan ke file yang hanya dapat dibaca (read-only file)
- Error aritmetik. Proses mencoba untuk
melakukan komputasi yang tidak diizinkan, seperti pembagian dengan nol,
atau mencoba menyimpan bilangan yang besarnya diluar kemampuan perangkat
keras. Kelebihan waktu proses telah menunggu event tertentu lebih lama
dari waktu maksimum
- Kegagalan I/O. Error yang terjadi pada saat
input atau output, seperti ketidakmampuan untuk menemukan file, kegagalan
membaca atau menulis setelah beberapa kali mencoba (pada saat misalnya
menemukan daerah yang telah rusak pada pita magnetik) atau operasi yang
invalid (misalnya melakukan pembacaan dari printer)
- Intruksi yang invalid. Proses mencoba mengeksekusi
intruksi yang tidak ada (seringkali akan mengakibatkan pencabangan ke suatu
daerah data dan berusaha mengeksekusi data)
- Intruksi ber-privilage. Proses berusaha untuk
menggunakan suatu intruksi yang dicadangkan bagi sistem operasi
- Pemakaian data yang salah. Potongan datanya memiliki
jenis yang salah, atau tidak diinisilaisasi terlebih dahulu
- Intervensi Operator atau OS. Dengan sesuatu alasan,
operator atau sistem operasi telah menghentikan proses (misalnya, telah
terjadi deadlock)
- Penghentian Induk. Apabila induk berhenti,
sistem operasi secara otomatis dapat menghentikan seluruh turunan proses
induk itu
- Permintaan induk. Proses induk umumnya memiliki
otoritas untuk menghentikan semua turunannya
4.
PROSES YANG SALING BEKERJASAMA
Proses yang bersifat simultan (concurrent)
dijalankan pada sistem operasi dapat dibedakaan menjadi yaitu proses
independent dan proses kooperatif. Suatu proses dikatakan independen apabila
proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang
sedang dijalankan pada sistem. Berarti, semua proses yang tidak membagi data
apa pun (baik sementara/ tetap) dengan proses lain adalah independent.
Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun
terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata
lain, proses dikatakankooperatif bila proses dapat membagi datanya dengan
proses lain. Ada empat alasan untuk penyediaan sebuah lingkungan yang
memperbolehkan terjadinya proses kooperatif:
1. Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian informasi yang sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.
2. Kecepatan penghitungan/ komputasi: jika kita menginginkan sebuah tugas khusus untuk menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti CPU atau jalur I/O).
3. Modularitas: kita mungkin ingin untuk membangun sebuah sistem pada sebuah model modular-modular, membagi fungsi sistem menjadi beberapa proses atau threads.
4. Kenyamanan: bahkan seorang pengguna individu mungkin memiliki banyak tugas untuk dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit, memcetak, dan meng-compile secara paralel.
1. Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian informasi yang sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.
2. Kecepatan penghitungan/ komputasi: jika kita menginginkan sebuah tugas khusus untuk menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti CPU atau jalur I/O).
3. Modularitas: kita mungkin ingin untuk membangun sebuah sistem pada sebuah model modular-modular, membagi fungsi sistem menjadi beberapa proses atau threads.
4. Kenyamanan: bahkan seorang pengguna individu mungkin memiliki banyak tugas untuk dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit, memcetak, dan meng-compile secara paralel.
5. THREADS
Thread merupakan suatu proses
didefinisikan oleh resource yang digunakan dan lokasi yangakan dieksekusi.
Namun adakalanya proses-proses akan menggunakan resource secara bersama-sama.
Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register,
dan ruang stack disebut dengan thread atau lighweight process (LWP). Thread
akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode,
bagian data, dan resource sistem operasi, seperti open file dan sinyal secara
kolektif yang sering disebut dengan task.Pada multi proses, setiap proses
secara terpisah melakukan operasi tidak bekerja sama dengan proses lain, setiap
proses mempunyai program counter, stack register dan ruang alamat sendiri.
Organisasi jenis ini berguna jika job dibentuk oleh proses-proses yang tidak
saling berhubungan. Multi proses membentuk task yang sama. Sebagai contoh,
multi proses dapat menyediakan data untuk mesin secara remote pada implementasi
system file jaringan. Hal ini lebih efisien apabila satu proses terdiri dari
multi thread melayani tugas yang sama. Pada implementasi multi proses, setiap
proses mengeksekusi kode yang sama tetapi mempunyai memori dan resource file
sendiri. Satu proses multi thread menggunakan resource lebih sedikit daripada
multi proses, termasuk memory, open file dan penjadwalan CPU.
Ada 3 model process pada server :
1. thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls.
2. single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik.
3. finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram.
1. thread di ciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls.
2. single treads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik.
3. finite-state machine, kinerja baik dengan melakukan parallelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram.
6. KOMUNIKASI ANTAR PROSES
·
Sistem Berbagi Memori
Sistem Berbagi Memori atau yang disebut juga sebagai Shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.
Sistem Berbagi Memori atau yang disebut juga sebagai Shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.
·
Sistem Berkirim Pesan
Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi tersebut.Sistem berkirim pesan sangat penting dalam sistem operasi. Karena dapat diimplementasikan dalam banyak hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.
Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian itu dapat saling bertukar pesan melalui link komunikasi tersebut.Sistem berkirim pesan sangat penting dalam sistem operasi. Karena dapat diimplementasikan dalam banyak hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.
Terdapat dua macam cara
berkomunikasi, yaitu:
1. Komunikasi Langsung, dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus mengetahui secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah pesan salah terkirim ke proses yang lain. Karakteristiknya antara lain:
a. Link dapat otomatis dibuat
b. Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan
c. Diantara pasangan itu terdapat tepat satu link
d. Link tersebut biasanya merupakan link komunikasi dua arah
1. Komunikasi Langsung, dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus mengetahui secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah pesan salah terkirim ke proses yang lain. Karakteristiknya antara lain:
a. Link dapat otomatis dibuat
b. Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan
c. Diantara pasangan itu terdapat tepat satu link
d. Link tersebut biasanya merupakan link komunikasi dua arah
2. Komunikasi tidak langsung, berbeda dengan komunikasi langsung, jenis komunikasi ini menggunakan sejenis kotak surat atau port yang mempunyai ID unik untuk menerima pesan. Proses dapat berhubungan satu sama lain jika mereka membagi port mereka. Karakteristik komunikasi ini antara lain:
a. Link hanya terbentuk jika beberapa proses membagi kotak surat mereka
b. Sebuah link dapat terhubung dengan banyak proses
c. Setiap pasang proses dapat membagi beberapa link komunikasi
d. Link yang ada dapat merupakan link terarah ataupun link yang tidak terarah
7. BUFFERING
Baik komunikasi itu langsung atau
tak langsung, penukaran pesan oleh proses memerlukan antrian sementara. Pada
dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan:
oKapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
o Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
o Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.
oKapasitas nol: antrian mempunyai panjang maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
o Kapasitas terbatas: antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
o Kapasitas tak terbatas: antrian mempunyai panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.
8. KONDISI-KONDISI
PERKECUALIAN
8.1 Proses Dihentikan
Pengirim atau penerima
menghentikan komunikasi setelah pesan diproses. Hal in mengakibatkan pesan
tidak pernah diterima atau proses yang menunggu pesan tersebut tidak pernah
dikirim. Dalam hal ini ada 2 kasus:
§Penerima proses P menunggu suatu pesan dari proses Q yang dihentikan, jika ada aksi, maka P di block. Pada kasus ini system juga akan mengehntikan P atau memberitahu pada P bahwa Q dihentikan.
§ Proses P mengirim pesan ke proses Q yang dihentikan. Pada system buffer otomatis, tidak akan terjadi apa-apa. P melanjutkan eskkusi. Jika P ingin mengetahui apakah pesannya telah di proses oleh Q, maka P harus memprogram secara eksplisit suatu pengetahuan. Jika tidak ada buffer, Pakan diblock seperti halnya kasus 1. Sistem juga akan menghentikan P atau memberitahukan pada P bahwa Q dihentikan.
§Penerima proses P menunggu suatu pesan dari proses Q yang dihentikan, jika ada aksi, maka P di block. Pada kasus ini system juga akan mengehntikan P atau memberitahu pada P bahwa Q dihentikan.
§ Proses P mengirim pesan ke proses Q yang dihentikan. Pada system buffer otomatis, tidak akan terjadi apa-apa. P melanjutkan eskkusi. Jika P ingin mengetahui apakah pesannya telah di proses oleh Q, maka P harus memprogram secara eksplisit suatu pengetahuan. Jika tidak ada buffer, Pakan diblock seperti halnya kasus 1. Sistem juga akan menghentikan P atau memberitahukan pada P bahwa Q dihentikan.
8.2 Kehilangan Pesan
Pesan
pada proses P ke proses Q bisa jadi hilang entah kemana dalam suatu jaringan
komunikasi. Hal in mengakibatkan kegagalan pada hardware, Untuk mengatasi hal
itu ada 3 metode, yaitu:
§ Sistem operasi mendeteksi adanya kejadian tersebut, kemudia mengrim ulang pesan yang hilang
§ Proses yang mengirim pesan mendeteksi kejadian tersebut dan kemudian mentransmisikan kembali pesan tersebut jika diminta
§ Sistem oprasi mendeteksi adanya kejadian tersebut dan kemudian memberitahukan kepada proses yang mengirim bahwa pesan yang disampaikan hilang di tengah jalan. Proses pengiriman dapat melakukan sesuatu sesuai yang dipilihnya
§ Sistem operasi mendeteksi adanya kejadian tersebut, kemudia mengrim ulang pesan yang hilang
§ Proses yang mengirim pesan mendeteksi kejadian tersebut dan kemudian mentransmisikan kembali pesan tersebut jika diminta
§ Sistem oprasi mendeteksi adanya kejadian tersebut dan kemudian memberitahukan kepada proses yang mengirim bahwa pesan yang disampaikan hilang di tengah jalan. Proses pengiriman dapat melakukan sesuatu sesuai yang dipilihnya
Untuk
mendeteksi adanya pesan yang hilang makan digunakan Timeout. Pada saat satu
pesan dikirim maka akan diberikan pesan jawaban bahwa oesab tekah dikirim.
Sistem oprasi / suatu proses akan menghitung interval waktu antara jawaban dengan
pesan yang diterima jika melebihi batas waktu yang telah ditentukan, maka pesan
tersebut dianggap hilang dan akan dikirim kembali.
Kelemahan dari system ini adalah terkadang pesan dating sedikit terlambat dari yang diperkirakan sehingga system oprasi mungkin menggangapnya hilang dan mengakibatkan copiannya dikirim dan penerima akan mendapatkan 2 pesan yang sama.
Kelemahan dari system ini adalah terkadang pesan dating sedikit terlambat dari yang diperkirakan sehingga system oprasi mungkin menggangapnya hilang dan mengakibatkan copiannya dikirim dan penerima akan mendapatkan 2 pesan yang sama.
8.3
Proses Terganggu
Pesan
yang dikirim sebelum sampai ditujuan kadang bisa mengalami gangguan di tengah
jalan, sama seperti pesan yang hilang. Jika hal in terjadi maka pesan akan
dikirim kembali.
Daftar Pustaka:
No comments:
Post a Comment