Rabu, 21 Januari 2015

KONGKURENSI DAN MUTUAL EXCLUSION


1.    Pengertian kongkurensi
Perkembangan sistem komputer mendatang adalah menuju ke sistem multiprocessing,
multiprogramming, terdistribusi dan paralel yang mengharuskan adanya proses-proses yang berjalan bersama dalam waktu yang bersamaan. Hal demikian merupakan masalah yang perlu perhatian dari perancang sistem operasi. Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi (proses-proses yang kongkuren).
Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada.
2.    Prinsip-prinsip kongkurensi
Kongkurensi merupakan kegiatan yang berhubungan dengan :
a. Alokasi waktu pemroses untuk proses-proses yang aktif.
b. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
c. Komunikasi antar proses.
d. Sinkronisasi aktivitas banyak proses
Masalah kongkurensi dapat terjadi pada :
a. Banyak aplikasi.
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
b. Strukturisasi sebuah aplikasi yang terdiri dari kumpulan proses.
Perluasan prinsip perancangan modular dan pemograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai kumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
c. Strukturisasi sebuah proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses. Strukturisasi satu aplikasi dapat dilakukan dengan banyak proses atau banyak thread. Sistem operasi modern telah mendukung banyak thread yang berkinerja lebih bagus dibanding proses dalam kondisi/lingkungan yang lebih terkendali.
Contoh :  Suatu word processor antara lain mempunyai kemampuan :
-          Menerima masukan dari keyboard
-          Menerima masukan dari mouse atau perangkat penunjuk yang lain (asinkron)
-           Pemisahan kata-kata
-           Memformat baris menjadi rata kanan, kiri atau kanan-kiri.
Aplikasi ini dapat diterapkan dengan banyak proses atau thread yang masingmasing mempunyai tugas tertentu. Dengan demikian, saat dilakukan penataan tampilan di layar, aplikasi sekaligus dapat menerima masukan dari mouse yang segera akan diteruskan ke aplikasi untuk mendapat perhatian.
d. Strukturisasi sistem operasi
Keunggulan strukturisasi dapat diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai kumpulan proses. Sistem operasi bermodelkan client/server.
3.    Kesulitan-kesulitan dalam kongkurensi
Kecepatan proses pada sistem dipengaruhi oleh :
a. Aktivitas-aktivitas proses-proses lain.
b. Cara sistem operasi menangani interupsi.
c. Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi
Beberapa kesulitan yang muncul :
a. Pemakaian bersama sumber daya global.
                Apabila terdapat dua proses yang menggunakan variabel global yang sama serta keduanya membaca dan menulis ke variabel itu,maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b. Pengelolaan alokasi sumber daya agar optimal.
Apabila proses A meminta suatu kanal masukan/keluaran tertentu dan dipenuhi, kemudian terjadi proses A di suspend sebelum menggunakan kanal tersebut. Jika sistem operasi mengunci kanal (tidak memperbolehkan atau mencegah proses lain untuk menggunakannya), maka tindakan tersebut menghasilkan inefisiensi.
c. Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemograman kongkuren lebih sulit disbanding pencarian kesalahan pada program-program sekuen.
 Penanganan kongkurensi adalah dengan :
a. Mengetahui proses-proses yang aktif.
                Sistem operasi mengelola senarai proses di sistem operasi. Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state yang diimplementasikan sistem operasi.
b. Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif.
Sumber daya yang harus dikelola antara lain :
-           Waktu pemroses
-          Memori
-          Berkas-berkas (file)
-          Peralatan masukan/keluaran
-          Dan sebagainya
c. Proteksi data dan sumber daya fisik proses.
                Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (interfensi) proses-proses lain.
d. Hasil-hasil proses harus independen.
                Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses
lain dimana eksekusi dilakukan.
4.    Mutual Exclusion
Merupakan kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive). Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section. Hanya satu program pada satu saat yang diijinkan masuk ke critical region. Pemogram tidak dapat bergantung pada system operasi untuk memahami dan memaksakan batasan ini, karena maksud program tidak dapat diketahu oleh sistem operasi. Hanya saja, sistem operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu. Pemograman harus menspesifikasikan bagian-bagian critical section, sehingga sistem operasi akan menjaganya.
Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
a. Deadlock
b. Startvation

5.    Interaksi antar proses
Pada sistem dengan banyak proses kongkuren, terdapat tiga kategori interaksi,
yaitu :
a. Proses-proses saling tidak peduli (independen)
Proses-proses ini tidak dimaksudkan untuk bekerja bersama untuk mencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuan keduanya. Meski proses-proses tidak bekerja bersama, sistem operasi perlu mengatur persaingan diantara proses-proses itu dalam memperoleh sumber daya yang terbatas.
Contoh : Terdapat dua aplikasi yang berusaha mengakses printer yang sama, bila kedua aplikasi benar-benar mengakses printer yang sama secara bersamaan, maka kedua proses akan memperoleh hasil yang tak dikehendaki. Sistem operasi harus mengatur pengaksesan-pengaksesan sumber daya agar tidak menyebabkan hasil yang tidak dikehendaki.
b. Proses-proses saling mempedulikan secara tidak langsung
Dimana proses-proses tidak perlu saling mempedulikan identitas proses-proses lain tapi sama sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.
c. Proses-proses saling mempedulikan secara langsung.
Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas. Interaksi antara proses-proses dan masalah-masalah yang harus diatasi dapat
dilihat dalam tabel berikut :


Derajat
Kepedulian
Hubungan
Akibat satu proses
terhadap lainnya
Masalah
pengendalian yang
dilakukan
Proses tak peduli
Persaingan
·  Hasil satu proses
Independen terhadap aksi proses lain.
·  Pewaktuan proses
dapat berdampak pada proses lain
·  Mutual exclusion.
·  Deadlock
·  Starvation
Proses secara tidak langsung peduli terhadap proses lain, yaitu obyek yang
dipakai bersama
Kerjasama dengan pemakaian bersamaan
·  Hasil-hasil proses
dapat bergantung pada informasi yang diperoleh dari proses lain.
·  Pewaktuan proses
dapat berdampak pada proses lain
·  Mutual exclusion.
·  Deadlock
·  Starvation
·  Koherensi data
Proses secara
langsung peduli terhadap proses lain (tersedia primitif-primitif untuk proses
tersebut)
· Kerjasama dengan
komunikasi yang diperoleh dari proses lain.
·  Pewaktuan proses
dapat berdampak pada proses lain
·  Hasil-hasil proses
dapat bergantung
pada informasi
·  Deadlock
·  Starvation


6.    Persaingan diantara proses-proses untuk sumber daya
                Proses-proses kongkuren berkompetisi ketika proses-proses bersaing menggunakan sumber daya yang sama. Dua proses atau lebih perlu mengakses sumber daya yang sama pada suatu saat. Masing-masing proses tidak peduli keberadaan proses-proses lain dan masing-masing proses tidak dipengaruhi proses-proses lain. Pada proses-proses berkompetisi ini, tidak ada pertukaran informasi antara prosesproses itu. Eksekusi satu proses dapat berpengaruh terhadap kelakuan prosesproses yang berkompetisi. Jika dua proses ingin mengakses satu sumber daya tunggal maka sistem operasi mengalokasikan untuk salah satu proses dan mengharuskan proses lain menunggu. Proses yang ditolak pengaksesan menjadi melambat. Kasus ekstrim yang dapat terjadi adalah proses di-blocked terus-menerus sehingga tak pernah mengakses sumber daya. Proses tak pernah dapat berakhir dengan suskses. Kondisi tidak pernah dapat kesempatan dialokasikan sumber daya disebut startvation. Sistem operasi harus menghindarkan terjadinya kondisi ini.
Persaingan proses-proses untuk memperoleh sumber daya menimbulkan tiga masalah :
1. Mutual exclusion
2. Deadlock
3. Startvation
                Pengendalian persaingan melibatkan sistem operasi, yang bertugas mengalokasikan sumber daya. Proses-proses itu sendiri harus menyatakan keperluan mutual exclusion (diprogram oleh pemrogram menggunakan system call yang disediakan sistem operasi) dan sistem operasi menangani agar tidak terlanggar kondisi mutual exclusion, serta tidak terjadi deadlock dan startvation.
7.    Kerjasama diantara proses-proses dengan pemakaian bersama
Dalam kasus kerjasama pemakaian sumber daya bersama meliputi proses-proses yang saling berinteraksi tanpa dinyatakan secara eksplisit.
Contoh : Banyak proses mengakses variabel atau berkas yang dipakai bersama.
Proses-proses dapat menggunakan dan memperbarui data yang dipakai bersama tanpa peduli proses-proses lain. Proses mengetahui bahwa proses-proses lain dapat juga mengakses data yang sama. Proses-proes harus bekerja sama untuk menjamin integritas data yang dipakai bersama tersebut. Kerjasama diantara proses-proses dalam pemakaian bersama mempunyai masalah antara lain :
-          Mutual exclusion
-          Deadlock
-           Startvation
Karena data disimpan pada suatu sumber daya (peralatan, memori), maka terdapat masalah pengendalian mutual exclusion, deadlock dan startvation.
Perbedaannya adalah item-item data dapat diakses dengan dua mode, yaitu :
1. Operasi pembacaan dan penulisan harus mutually exclusive (yaitu benar-benar hanya satu proses yang berada di critical section).
2. Operasi penulisan saja yang harus mutually exclusive. Pada situasi ini, masalah baru muncul yaitu mengenai koherensi data. Critical section digunakan untuk menjamin integritas data.
8.  Kerjasama diantara proses-proses dengan komunikasi
Pada kasus persaingan, proses-proses memakai sumber daya tanpa peduli prosesproses lain. Pada kasus kedua, proses-proses memakai bersama nilai dan meski masing-masing proses tidak secara eksplisit peduli proses-proses lain. Tapi prosesproses peduli untuk menjaga integritas data. Ketiak proses-proses bekerja sama dengan komunikasi, beragam proses berpartisipasi dalam suatu usaha dengan menghubungkan semua proses. Komunikasi menyediakan cara untuk sinkronisasi atau koordinasi beragam aktivitas. Komunikasi dicirikan dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk mengirim dan menerima pesan disediakan sebagai bagian bahasa pemrograman atau disediakan kernel sistem operasi. Karena tak ada sesuatu yang dipakai bersama diantara proses-proses itu dalam melewatkan pesan-pesan, tak ada masalah mutual exclusion. Tetapi masalah deadlock dan startvation dapat muncul.
9.       Pokok penyelesaian masalah kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi dua, yaitu :
a. Mengasumsikan adanya memori yang digunakan bersama.
b. Tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya memori bersama lebih mempermudah penyelesaian masalah kongkurensi. Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama ataupun untuk system tersebar.


Sumber: 
http://manajemenmemory.blogspot.com/2010/10/konkurensi.html
https://noursloudy.wordpress.com/2014/05/29/makalah-konkurensi-untuk-tugas-mata-kuliah-sistem-operasi/ 

Selasa, 20 Januari 2015

PENJADWALAN PROSES

1.       Deskripsi  Penjadwalan Proses
                Penjadwalan merupakan kumpulan kebijaksaanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer.
Penjadwalan bertugas memutuskan hal-hal berikut:
-          Proses yang harus berjalan
-          Kapan dan selama berapa lama proses berjalan
Sasaran utama penjadwalan proses adalah optimasi kinerja sistem computer menurut kriteria tertentu.
Kriteria untuk mengukur dan optimasi kinerja penjadwalan:
A.      Adil (Fairness)
                Adil adalah proses-proses diperlakukan sama yaitu mendapat jatah waktu layanan pemroses yang sama dan tidak ada proses yang tidak kebagian layanan pemroses sehingga mengalami startvation. Starvation adalah kondisi bahwa proses tidak pernah berjalan karena tidak dijadwalkan untuk berjalan.
Sasaran penjadwalan seharusnya menjamin setiap proses mendapat pelayanan dari pemroses secara adil.
B.      Efisiensi
                Efisiensi atau utilisasi pemroses yang dihitung dengan perbandingan (rasio) waktu sibuk pemroses dengan total waktu operasi system computer secara keseluruhan.
Sasaran penjadwalan adalah menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi system computer mencapai nilai maksimum. Keadaan sibuk berarti pemroses tidak menganggur. Layanan pemroses termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan layanan system operasi secara efektif, bukan melakukan penjadwalan itu sendiri.
C.      Waktu Tanggap (Response Time)
Waktu tanggap berbeda untuk:
-          System interaktif
-          System waktu nyata
Waktu tanggap pada system interaktif
Waktu tanggap dalam system interaktif didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah oleh program atau transaksi sampai hasil pertama muncul di perangkat masukan keluaran seperti layar (terminal). Waktu tanggap untuk system interaktif biasa disebut terminal response time.
Waktu tanggap untuk system waktu nyata
Pada system waktu nyata (real-time), waktu tanggap didefinisikan sebagai waktu dari saat kemunculan suatu kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan terhadap kejadian dieksekusi.
Waktu untuk system nyata biasa disebut event response time. Sasaran penjadwalan adalah meminimalkan waktu tanggap sehingga menghasilkan system yang reponsif.
D.      Turn Arround Time
Turn Arround time adalah waktu yang dihabiskan dari saat proses atau job mulai masuk ke system sampai proses itu diselesaikan system. Waktu yang dimaksud adalah waktu yang dihabiskan proses berada di system, diekspresikan sebagai penjumlahan waktu eksekusi (waktu pelayanan proses/job) dan waktu  menunggu dari proses itu, yaitu:
o   Turn Arround time = waktu eksekusi + waktu menunggu
Sasaran penjadwalan adalah menimbulkan turn arround time
E.       Throughput
Throughput adalah jumlah kerja yang dapat diselesaikan selama satu selang/unit waktu. Cara untuk mengekspresikan troughput adalah dengan jumlah proses/job pemakai yang dapat dieksekusi dalam satu unit/interval waktu tertentu.
Sasaran penjadwalan adalah memaksimalkan jumlah job/proses yang dilayani per satu interval waktu. Lebih tinggi angka troughput maka lebih banyak kerja yang dilakukan system.
2.   Strategi Penjadwalan
Terdapat dua stategi penjadwalan, yaitu:
A.      Penjadwalan Nonpreemptive
Begitu proses diberi jatah layanan pemroses maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai. Nonpreemptive juga disebut run-to-completion karena proses yang telah dijadwalkan akan dijalankan sampai selesainya atau proses tersebut meminta layanan masukan/keluaran.
Contoh algoritma-algoritma yang menerapkan strategi nonpreemptive di antaranya:

1.       FIFO (First-in, First-out) atau FCFS (First-come, First-serve)
Penjadwalan FIFO ini merupakan penjadwalan tidak berprioritas, dan penjadwalan dengan ketentuan-ketentuan paling sederhana, yaitu:
-          Proses-proses diberi  jatah waktu pemroses diurutkan berdasarkan waktu kedatangan proses-proses itu ke system.
-          Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai.
Penjadwalan ini dikatakan adil dalam arti resmi (dalam semantic/arti antrian, yaitu proses yang pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menunggu.
FIFO jarang digunakan secara mandiri tapi dikombinasikan dengan skema lain, misalnya:  Keputusan berdasarkan prioritas proses, sedangkan untuk proses-proses berprioritas sama diputuskan berdasarkan FIFO.
Kelebihan FIFO
-          Dalam kriteria efisiensi, penjadwalan FIFO sangat efisien dalam penggunaan proses.
-          Algoritmanya cukup sederhana
Kelemahan FIFO
-          Dalam kriteria adil, penjadwalan FIFO adil dalam arti resmi (dalam semantic/arti antrian) yaitu proses yang pertama datang, akan dilayani pertama juga), tapi dinyatakan tidak adil karena proses-proses yang perlu waktu lama membuat proses-proses pendek menunggu. Proses-proses tidak penting dapat membuat proses-proses penting menunggu.
-          Penjadwalan sangat tidak memuaskan karena proses menunggu lama, aktu tanggapnya sangat jelek. Tidak cocok untuk sistem interaktif.
-          Turn around time tidak bagus.
-          Throughtput tidak bagus.
-          Tidak dapat digunakan untuk sistem waktu nyata (real-time applications).

2.       SJF (Shortest Job First)
Penjadwalan SJF ini merupakan penjadwalan yang dapat dikatakan sebagai berprioritas. Di SJF, prioritas diasosiasikan dengan masing-masing proses  dan pemroses dialokasikan ke proses dengan prioritas tertinggi. Proses-proses dengan prioritas yang sama akan dijadwalkan secara  FIFO.
Penjadwalan ini mengasumsikan waktu jalan proses (sampai selesai) atau waktu lamanya proses diketahui sebelumnya. Mekanisme penjadwalan SJF adalah lebih dulu menjadwalkan proses dengan waktu jalan terpendek sampai selesai. Setelah proses itu selesai, maka proses dengan waktu jalan terpendek berikutnya akan dijadwalkan, demikian seterusnya.

Keunggulan penjadwalan SJF ini adalah mempunyai efisien tinggi dan turn around time rendah. Selain itu, SJF selalu memperhatikan rata-rata waktu respon terkecil, maka sangat baik untuk proses interaktif. Umumnya proses interaktif memiliki pola, yaitu menunggu perintah, menjalankan perintah, menunggu perintah dan menjalankan perintah, begitu seterusnya.
Contoh SJF:
Terdapat empat proses A,B,C,D dengan waktu jalan selama 8,7,6,5 kwanta
Cara I Proses-proses dijadwalkan berurutan sebagai A, B, C, D

Cara II Proses-proses yang dijadwalkan secara SJF yaitu berurutan D, C, B, A


Kedua cara menghasilkan turn arround time yang ditunjukkan pada gambar diatas. Cara I turn arround time rata-rata adalah 17,5 kwanta sedangakan dengan cara II (SJF) adalah 15 kwanta.

B.      Penjadwalan Preemptive
Saat proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih proses lain yang mempunyai prioritas lebih tinggi berdasarkan criteria system itu. Pada penjadwalan preemptive, proses dapat disela oleh proses lain sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu. Proses yang disela berubah menjadi state ready.
Penjadwalan preemptive berguna pada sistem yaitu proses-proses yang perlu mendapat perhatian/tanggapan pemroses secara cepat, misalnya :
1.        Pada sistem realtime, kehilangan interupsi (yaitu interupsi tidak segera dilayani) dapat berakibat fatal.
2.        Pada system-sistem interaktif timesharing, penjadwalan preemptive  agar dapat menjamin waktu tanggap yang memadai.
3.       Penjadwalan secara preemptive baik tetapi harus dibayar mahal.
Algoritma yang menerapkan strategi preemptive diantaranya adalah:
1.       Penjadwalan  Round Robin (RR)
Round Robin (RR) merupakan :
-          Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya  dan mudah diimplementasikan.
-          Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal berdasarkan lama waktu berjalannya proses (preempt by time).
-          Penjadwalan tanpa prioritas.
-          Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga tidak ada prioritas tertentu.
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jika proses masih running sampai akhir quantum, maka CPU akan mempreempt proses itu dan memberikannya ke proses lain. Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.
Algoritma yang digunakan :
1)      Jika kwanta habis dan proses belum selesai, maka proses menjadi runnable dan pemroses dialihkan ke proses lain.
2)      Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3)      Jika kwanta belum habis tetapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain.
Diimplementasikan dengan :
-          Mengelola senarai proses ready (runnable) sesuai urutan kedatangan.
-          Ambil proses yang berada di ujung depan antrian menjadi running.
-          Bila kwanta belum habis dan proses selesai, maka ambil proses di ujung depan antrian proses ready.
-          Jika kwanta habis dan proses belum selesai, maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depan antrian proses ready.
Masalah yang timbul adalah menentukan besar kwanta, yaitu :
-          Kwanta terlalu besar menyebabkan waktu tanggap besar dan turn arround time rendah.
-          Kwanta terlalu kecil menyebabkan peralihan proses terlalu banyak sehingga menurunkan efisiensi proses.
Switching dari satu proses ke proses lain membutuhkan kepastian waktu yang digunakan untuk administrasi, menyimpan, memanggil nilai-nilai register, pemetaan memori, memperbaiki tabel proses dan senarai dan sebagainya. Mungkin proses switch ini atau konteks switch membutuhkan waktu 5 msec disamping waktu pemroses yang dibutuhkan untuk menjalankan proses tertentu.

Dengan permasalahan tersebut tentunya harus ditetapkan kwanta waktu yang optimal berdasarkan kebutuhan sistem dari hasil percobaan atau data historis. Besar kwanta waktu beragam bergantung beban sistem. Apabila nilai quantum terlalu singkat akan menyebabkan terlalu banyak switch antar proses dan efisiensi CPU akan buruk, sebaliknya bila nilai quantum terlalu lama akan menyebabkan respon CPU akan lambat sehingga proses yang singkat akan menunggu lama. Sebuah quantum sebesar 100 msec merupakan nilai yang dapat diterima.
Penjadwalan ini baik untuk sistem interactive-time sharing dimana kebanyakan waktu dipergunakan menunggu kejadian eksternal. Contoh : text editor, kebanyakan waktu program adalah untuk menunggu keyboard, sehingga dapat dijalankan proses-proses lain.
Kelemahan RR:
-          Waktu tanggap tidak memadai untuk sistem interatif waktu maya atau hard-real-time applications
Kelebihan RR:
-          Adil bila dipandang dari persamaan pelayanan oleh pemroses.
-          Cenderung efisien pada sistem interaktif.
-          Waktu tanggap memuaskan untuk sistem interaktif
-          Turn around time cukup baik.
-          Throughtput cukup baik.

2.       Priority Schedulling (PS)
PS Adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya.
Contoh penjadwalan berprioritas :
Proses-proses yang sangat banyak operasi masukan/keluaran dan menghabiskan kebanyakan waktu proses untuk menunggu selesainya operasi masukan/keluaran. Proses demikian disebut I/O bound process. Proses-proses ini dapat diberi prioritas sangat tinggi sehingga begitu proses memerlukan pemroses segera diberikan dan proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat segera dialihkan, dapat dipergunakan proses-proses lain tanpa mengganggu proses I/O bound.  Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses.
Dalam algoritma berprioritas dinamis dituntun oleh keputusan untuk memenuhi kebijaksanaan tertentu yang menjadi tujuan system komputer. Algoritma sederhana layanan yang bagus adalah menge-set proses dengan prioritas berdasarkan rumus nilai 1/f, dimana f adalah ration kwanta terakhir yang digunakan proses.
Pemberian prioritas diberikan secara :
1)   Static (Static Priority)
Static priorities berarti prioritas tidak berubah.
Kelebihan PS Statis :
-          Mudah diimplementasikan.
-          Mempunyai overhead relatif kecil.
Kelemahan PS Statis :
-      Tidak tanggap terhadap perubahan lingkungan yang mungkin menghendaki penyesuaian prioritas.

2) Dinamis (dynamic priorities)
Merupakan mekanisme untuk menanggapi perubahan lingkungan system beroperasi. Prioritas awal yang diberikan ke proses mungkin hanya berumur pendek setelah disesuaikan ke nilai yang lebih tepat sesuai lingkungan.
Kelemahan PS Dinamis :
-           Implementasi mekanisme prioritas dinamis lebih kompleks dan mempunyai overhead lebih besar. Overhead in diimbangi dengan peningkatan daya tanggap sistem.
Kelebihan PS Dinamis :
-          Tanggap terhadap perubahan lingkungan yang mungkin menghendaki
-          Memiliki penyesuaian terhadap prioritas.

3.       MFQ (Multiple Feddback Queues)
Penjadwalan ini merupakan :
      -            Penjadwalan preempyive (by-time)
      -            Penjadwalan berprioritas dinamis

Penjadwalan ini untuk mencegah banyaknya swapping dengan proses proses yang sangat banyak menggunakan pemrosesan (karena menyelesaikan tugasnya memakan waktu lama) diberi jatah waktu (jumlah kwanta) lebih banyak dalam satu waktu.

Penjadwalan ini menghendaki kelas-kelas prioritas bagi proses proses yang ada. Kelas tertinggi, berjalan selama satu kwanta, kelas berikutnya berjalan selama dua kwanta, kelas berikutnya berjalan empat kwanta, dan seterusnya. Ketentuan yang berlaku adalah sebagai berikut :

     -                 Jalankan proses pada kelas tertinggi
     -                 Jika proses menggunakan seluruh kwanta yang dialokasikan maka diturunkan kelas prioritasnya.
     -                 Proses yang masuk untuk pertama kali ke system langsung diberi kelas tertinggi.

Mekanisme ini dapat mencegah proses yang perlu berjalan lama swapping berkali-kali dan mencegah proses-proses interaktif yang singkat harus menunggu lama.

Penggunaan system dengan banyak proses lambat, memerlukan waktu dan juga terdapat banyak proses singkat.



Sumber:

https://dian75.wordpress.com/2010/08/04/penjadwalan-proses/

Senin, 19 Januari 2015

MANAGEMENT PROSES

A.    PENGERTIAN PROSES
                Proses adalah sebuah program yang sedang dieksekusi atau program yang sedang di jalankan atau software yang sedang dilaksanakan termasuk sistem operasi yang disusun menjadi sejumlah proses sequential.
                Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Proses berisi instruksi dan data. program counter dan semua register pemroses, dan stack berisi data sementara seperti parameter rutin, alamat pengiriman dan variabel-variabel lokal.
Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem. Salah satunya adalah program yang sedang dieksekusi yang merupakan unit kerja terkecil yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi. Sistem operasi mengelola semua proses di sistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijaksanaan untuk memenuhi sasaran sistem.

Hal – hal yang berkaitan dengan proses yaitu :
1.       MULTIPROGAMMING ( MULTITASKING )
                Multiprogramming adalah manajemen banyak proses pada satu pemroses. Istilah yang digunakan multiprogramming (multitasking) bukan multiprocessing. Mulitprocessing telah digunakan untuk konsep lain, yaitu komputer dengan banyak pemroses di satu sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara independen. Saat ini, kebanyakan komputer pribadi, workstation adalah sistem pemroses tunggal yang menjalankan sistem operasi multiprogramming (multitasking) seperti MS-Windows 3.0, MS-Windows NT, OS/2 dan Macintosh System 7.

Banyak proses dijalankan bersamaan, masing-masing proses mendapat bagian memori dan kendali tersendiri. Program yang dijalankan bersifat :
A.      Tidak bergantung (Independent)
-          Proses terpisah satu dari lainnya & tidak berpengaruh

B.      Satu program pada satu saat (one program at any instant)
-          Pada satu waktu hanya satu proses yang dilayani pemroses, menggunakan interleave bukan overlap diantara program-program
                Oleh karena perpindahan dari satu proses ke proses dilakukan secara cepat bagi bagi pemakai seolah-olah bekerja secara paralel. Hal ini dikenal dengan paralel semu (pseudoparallelism).

2.       MULTIPROCESSING
                Multiprocessing adalah manajemen banyak proses di komputer multiprocessor (banyak pemroses di dalamnya). Dengan kata lain komputer dengan banyak pemroses di satu sistem komputer dengan masing-masing pemroses melakukan pemrosesan secara independen. Dulunya sistem ini hanya terdapat di sistem besar, mainframe dan minikomputer. Saat ini komputer workstation telah dapat dilengkapi multiprocessor. Menggunakan komputer semaksimal mungkin dengan beberapa CPU sehingga beberapa program bisa dijalankan secara bersama-sama, masing-masing dengan menggunakan prosesornya sendiri-sendiri. Sistem operasi yang mendukung multiprocessing yaitu : Microsoft Windows NT, UNIX, Linux.
3.       DISTRIBUTED PROCESSING / COMPUTING
                Distributed Processing adalah manajemen banyak proses yang dieksekusi di banyak sistem komputer yang tersebar (terdistribusi). Trend masa datang adalah menuju komputasi tersebar (distributed computing). Banyak riset dan pengembangan sistem operasi tersebar di antaranya AMOEBA, MACH, dan sebagainya.

B.    PEMROSES
Kebutuhan utama pengendalian proses oleh Sistem Operasi dapat dinyatakan dengan mengacu ke proses yaitu :
1.       Saling melanjutkan (Interleave)
                Dikatakan interleave (bersambung/ melanjutkan) maksudnya pemroses mengeksekusi satu proses setiap saat dan secara cepat beralih ke proses lainnya secara bergiliran. Sistem Operasi harus interleave (saling melanjutkan) eksekusi proses-proses agar memaksimumkan penggunaan pemroses sambil masih memberi waktu tanggap yang memadai.
2.       Mengikuti kebijaksanaan tertentu
                Sistem Operasi harus mengalokasikan sumber daya ke proses-proses mengikuti kebijaksanaan yang ditentukan (misal suatu aplikasi memiliki prioritas lebih tinggi) sambil menghindari deadlock .
3.       Mendukung komunikasi antar proses dan penciptaan proses
                Sistem Operasi harus mendukung komunikasi antar proses dan penciptaan proses oleh pemakai sehingga membantu menstrukturkan aplikasi. Jadi pada sistem dengan banyak proses aktif, proses-proses pada satu saat berada dalam beragam tahap eksekusinya yaitu proses mengalami beragam state selama siklus hidupnya sebelum berakhir dan keluar dari sistem.

                Sistem Operasi harus mengetahui state masing-masing proses dan merekam semua perubahan yang terjadi secara dinamis. Informasi ini untuk penjadwalan dan memutuskan alokasi sumber daya.

C.    DIAGRAM STATE DASAR
Status proses atau bagian keadaan proses memiliki tiga elemen. yaitu:
1.       Running
Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
Ada tiga kemungkinan bila sebuah proses memiliki status Running:
a.       Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.
b.      Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.
c.       Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan M / K) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

2.       Blocked
Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya) Bisa berupa proses menunggu : Selesainya operasi perangkat I/O; Tersedianya memori; Tibanya pesan jawaban
3.       Ready
Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan).



Keterangan:
-          Proses baru diciptakan berada pada state ready
-          Proses dari running menjadi blocked karena sumberdaya yang diminta belum tersedia atau meminta layanan perangkat masukan/ keluaran (I/O) sehingga menunggu kejadian yang muncul. Proses ini dikenal dengan event wait.
-          Proses dari running jadi ready karena penjadwal memutuskan eksekusi proses lain oleh karena jatah waktu telah habis (timeout).
-          Proses dari blocked jadi ready karena sumber daya yang diminta tersedia atau layanan I/O selesai/ terpenuhi. Proses ini dikenal event occur
-          Proses dari ready jadi running
Dalam status proses terdapat dua status tambahan, yaitu saat pembentukan danterminasi:
-          New adalah status yang dimiliki pada saat proses baru saja dibuat.
-          Terminated adalah status yang dimiliki pada saat proses telah selesai dieksekusi.

PCB (Program Control Block)
                Sistem Operasi memerlukan banyak informasi mengenai proses guna pengelolaan proses. Informasi ini ada di PCB. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, yaitu:


                Struktur datanya menyimpan informasi lengkap mengenai proses sehingga dapat terjadi siklus hidup proses. Informasi di PCB dikelompokkan menjadi 3, yaitu :
1.       Informasi Identifikasi Proses
2.       Informasi Status Pemroses
3.       Informasi Kendsali Proses

PROSES PEMAKAI
                Proses Pemakai mempunyai struktur berisi PCB, stack pemakai (user stack), ruang alamat proses ekslusif dan ruang alamat yang dipakai bersama proses lain. Struktur ini ditunjukkan pada tabel sebelumnya. Pada tabel diatas, struktur citra proses digambarkan kontinyuu (berturutan) di satu ruang alamat. Implementasi penempatan citra proses yang sesungguhnya bergantung skema manajemen memori yang digunakan dan organisasi struktur kendali sistem operasi.

OPERASI – OPERASI PADA PROSES
                Sistem Operasi dalam mengelola proses dapat melakukan operasi-operasi terhadap proses. Operasi-operasi terhadap proses antara lain :
1.       Penciptaan proses (create process)
-          Penghancuran/terminasi proses (destroy a process)
-          Penundaan proses (suspend a process)
-          Pelanjutan kembali proses (resume process)
-          Pengubahan prioritas proses
-          Memblok proses
-          Membangunkan proses
-          Menjadwalkan proses
-          Memungkinkan proses berkomunikasi dengan proses lain
Pada penciptaan proses melibatkan banyak aktivitas, yaitu:
-          Menamai (memberi identitas) proses
-          Menyisipkan proses pada senarai proses atau tabel proses
-          Menentukan prioritas awal proses
-          Menciptakan PCB
-          Mengalokasikan sumberdaya awal bagi proses
                Ketika proses baru ditambahkan, SO membangun struktur data untuk mengelola dan alokasi ruang alamat proses itu. Aksi ini berkaitan dengan proses baru.
Penyebab penciptaan proses antara lain :
1.       Pada lingkungan batch, sebagai tanggapan atas pemberian satu kerja (job).
2.       Pada lingkungan interaktif, ketika pemakai baru berusaha log on.
3.       Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file, sistem operasi dapat menciptakan proses yang akan mengelola pencetakan itu.
4.       Proses menciptakan proses lain (proses anak). Proses yang menciptakan proses disebut proses induk (parent process). Proses anak-pun kembali dapat menciptakan proses-proses anak. Proses-proses dapat membentuk pohon hirarki proses.


A.      Alasan – alasan penciptaan proses


B.      Penghancuran Proses (destroy a process)
                Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu: Sumber daya-sumber daya yang dipakai dikembalikan, Proses dihancurkan dari senarai atau tabel system, PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas )

Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat dua pendekatan. Pendekatan pertama ada beberapa sistem, proses-proses turunan dihancurkan saat proses induk dihancurkan secara otomatis.Pendekatan kedua beberapa sistem lain menganggap proses anak independen terhadap proses induk Proses anak tidak secara otomatis dihancurkan saat proses induk dihancurkan.

Alasan Penghancuran proses
Dibawah ini adalah tabel alasan – alasan penghancuran proses.

C.      Penundaan Proses (suspend a process)
                Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara. Penundaan dapat diinisialisasi oleh proses itu sendiri atau proses lain. Penundaan biasanya berlangsung singkat dan sering dilakukan sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama beban puncak. Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain me-resume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan. Pada sistem monoprocessor, proses running dapat men-suspend dirinya sendiri karena lak ada proses lain yang juga running yang dapat memerintahkan suspend. Pada sistem multiprocessor, proses running dapat di-suspend proses running lain pada pemroses berbeda. Proses ready hanya dapat di-suspend oleh proses lain.
D.      Proses Pelanjutan Kembali (resume a process)
                Jika sistem berfungsi secara buruk dan mungkin gagal maka proses-proses dapat di- suspend agar di-resume setelah masalab diselesaikan. Pemakai yang ragu / khawatir mengenai basil proses dapat men-suspend proses [bukan membuang (abort) proses]. Saat pemakai yakin proses akan berfungsi secara benar maka dapat me-resume (melanjutkan kembali di instruksi saat di-suspend) proses yang di-suspend.
Sebagai tanggapan terhadap fluktuasi jangka pendek beban sistem, beberapa proses dapal di-suspend dan di- resume saat beban kembali ke tingkat normal.
E.       Proses Blocked
                Pada proses blocked terdapat transisi menjadi suspendedblocked. Pilihan ini dirasa aneh. Apakah tidak cukup menunggu selesainya operasi masukan/keluaran atau kejadian yang membual proses ready atau suspendedready? Bukankah state blocked, readyblocked, suspendedblocked sama-sama tidak mendapatjatah waktu pemroses? Kenapa dibedakan ?. Jawabannya adalah karena penyelesaian operasi masukan/keluaran bagi proses blocked mungkin tak pernah terjadi atau dalam waktu tak terdefinisikan sehingga lebih baik di-suspend agar sumber daya-sumber daya yang dialokasikan untuk proses tersebut dapat digunakan proses-proses lain.
                Proses blocked di-suspend sistem atau secara manual menjadi suspendedblocked. Bila akhirnya operasi masukan/keluaran berakhir maka segera proses suspendedblocked mengalami transisi. Karena resume dan suspend mempunyai prioritas tinggi maka transisi segera dilakukan. Suspend dan resume dapat digunakan untuk menyeimbangkan beban sistem saat mengalami lonjakan di atas normal.




F.       Penjadwalan Proses
Kriteria untuk mengukur dan optimasi kinerja penjadwalan :
1.       Adil (fairness)
Adalah proses-proses yang diperlakukan sama, yaitu mendapat jatah waktu  pemroses yang sama dan tak ada proses yang tak kebagian layanan pemroses sehingga mengalami kekurangan waktu.
2.       Efisiensi (eficiency)
Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses.
3.       Waktu tanggap (response time)
Waktu tanggap berbeda untuk :
o   Sistem interaktif
Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari . perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time.
o   Sistem waktu nyata
Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time.

o   Turn around time
Adalah waktu yang dihabiskan dari saat program atau job mulai masuk ke sistem sampai proses diselesaikan sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu, yaitu : Turn arround time = waktu eksekusi + waktu menunggu.
o   Throughput
Adalah jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu

SINKRONISASI
Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Terdapat design yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron atau asinkron.
1.       Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
2.       Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
3.       Penerimaan yang diblok : Penerima mem blok sampai pesan tersedia.
4.       Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.
Ketika dalam keadaan sinkron, terjadi dua kejadian:
1.       Blocking send, yaitu pemblokiran pengirim sampai pesan sebelumnya diterima.
2.       Blocking receive, yaitu pemblokiran penerima sampai terdapat pesan yang akan dikirim.
Sedangkan untuk keadaan asinkron, yang terjadi adalah:
1.       Non-blocking send, yaitu pengirim dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak.
2.       Non-blocking receive, yaitu penerima menerima semua pesan baik berupa pesan yang valid atau pesan yang salah (null).



KOMUNIKASI ANTAR P
(Inter Process Communinication / IPC) :
Beberapa proses biasanya berkomunikasi dengan proses lainnya. Contohnya pada shell pipe line. Output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya. Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files).
1.       Komunikasi Langsung
Setiap proses yang ingin berkomunikasi harus memiliki nama yang bersifat eksplisit baik penerimaan atau pengirim dari komunikasi tersebut. Dalam konteks ini, pengiriman dan penerimaan pesan secara primitive dapat dijabarkan sebagai :
-          Send (P, message) – mengirim sebuah pesan ke proses P.
-          Receive (Q, message) – menerima sebuah pesan dari proses Q.
Sebuah jaringan komunikasi pada bahasan ini memiliki beberapa sifat, yaitu :
-          Sebuah jaringan yang didirikan secara otomatis diantara setiap pasang dari proses yang ingin dikomunikasikan.Proses tersebut harus mengetahui identitas dari semua yang ingin dikomunikasikan.
-          Sebuah jaringan adalah terdiri dari penggabungan 2 proses.
-          Diantara setiap pesan dari proses terdapat tepat sebuah jaringan.
Pembahasan ini memperlihatkan sebuah cara simetris dalam pemberian alamat. Oleh karena itu, baik keduanya yaitu pengirim dan penerima proses harus memberi nama bagi yang lain untuk berkomunikasi, hanya pengirim yang memberikan nama bagi penerima sedangkan penerima tidak menyediakan nama bagi pengirim. Dalam konteks ini, pengirim dan penerima secara sederhana dapat dijabarkan sebagai :
-          Send (P, message) – mengirim sebuah pesan kepada proses P.
-          Receive (id, message) – menerima sebuah pesan dari semua proses. Variabel id diatur sebagai nama dari proses dengan komunikasi.

2.       Komunikasi Tidak Langsung
                Dengan komunikasi tidak langsung, pesan akan dikirimkan pada dan diterima dari / melalui mailbox (Kotak Surat) atau terminal-terminal, sebuah mailbox dapat dilihat secara abstrak sebagai sebuah objek didalam setiap pesan yang dapat ditempatkan dari proses dan dari setipap pesan yang bias dipindahkan. Setiap kotak surat memiliki sebuah identifikasi (identitas) yang unik, sebuah proses dapat berkomunikasi dengan beberapa proses lain melalui sebuah nomor dari mailbox yang berbeda. Dua proses dapat saling berkomunikasi apabila kedua proses tersebut sharing mailbox. Pengirim dan penerima dapat dijabarkan sebagai :

-          Send (A, message) – mengirim pesan ke mailbox A.
-          Receive (A, message) – menerima pesan dari mailbox A.
Dalam masalah ini, link komunikasi mempunyai sifat sebagai berikut :
-          Sebuah link dibangun diantara sepasang proses dimana kedua proses tersebut membagi mailbox.
-          Sebuah link mungkin dapat berasosiasi dengan lebih dari 2 proses.
-          Diantara setiap pasang proses komunikasi, mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada satu mailbox.
                Misalkan terdapat proses P1, P2 dan P3 yang semuanya share mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3 masing-masing mengeksekusi sebuah kiriman dari A. Proses mana yang akan menerima pesan yang dikirim P1?. Jawabannya tergantung dari jalur yang kita pilih :
-          Mengijinkan sebuah link berasosiasi dengan paling banyak 2 proses.
-          Mengijinkan paling banyak 1 proses pada suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
-          Mengijinkan sistem untuk memilih secara mutlak proses mana yang akan menerima pesan (apakah itu P2 atau P3 tetapi tidak keduanya, tidak akan menerima pesan). Sistem mungkin mengidentifikasi penerima kepada pengirim.
                Mailbox mungkin dapat dimiliki oleh sebuah proses atau sistem operasi. Jika mailbox dimiliki oleh proses, maka kita mendefinisikan antara pemilik (yang hanya dapat menerima pesan melalui mailbox) dan pengguna dari mailbox (yang hanya dapat mengirim pesan ke mailbox). Selama setiap mailbox mempunyai kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus menerima pesan dari mailbox. Ketika proses yang memiliki mailbox tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak lagi ada.
Dengan kata lain, mempunyai mailbox sendiri yang independent, dan tidak melibatkan proses yang lain. Maka sistem operasi harus memiliki mekanisme yang mengijinkan proses untuk melakukan hal-hal dibawah ini :
-          Membuat mailbox baru.
-          Mengirim dan menerima pesan melalui mailbox.
-          Menghapus mailbox.
                Proses yang membuat mailbox pertama kali secara default akan memiliki mailbox tersebut. Untuk pertama kali, pemilik adalah satu-satunya proses yang dapat menerima pesan melalui mailbox ini. Bagaimanapun, kepemilikan dan hak menerima pesan mungkin dapat dialihkan ke proses lain melalui sistem pemanggilan.

-          Pengiriman yang diblok : Proses pengiriman di blok sampai pesan diterima oleh proses penerima (receiving process) atau oleh mailbox.
-          Pengiriman yang tidak diblok : Proses pengiriman pesan dan mengkalkulasi operasi.
-          Penerimaan yang diblok : Penerima mem blok samapai pesan tersedia.
-          Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null.
PENGALIHAN PROSES
Kelihatannya pengalihan proses (process switching) adalah sepele. Pada suatu saat, proses running diinterupsi dan sistem operasi memberi proses lain state running dan menggilir kendali ke proses itu.
Dalam hal ini muncul beberapa masalah, yaitu:
-          Kejadiankejadian apa yang memicu alih proses?
-          Masalah lain adalah terdapatnya perbedaan antara alih proses (process switching) dan alih konteks (context switching).
Apa yang harus dilakukan sistem operasi terhadap beragam struktur data yang dibawah kendalinya dalam alih proses?

1.       Kejadiankejadian Penyebab Pengalihan Proses
Kejadiankejadian yang menyebabkan terjadinya alih proses adalah:
a.       Interupsi sistem.
Interupsi sistem disebabkan kejadian eksternal dan tak bergantung proses yang saat itu sedang running.
Contoh : Selesainya operasi masukan/keluaran.
Pada kejadian interupsi, kendali lebih dulu ditransfer ke interrupt handler yang melakukan penyimpanan datadata dan kemudian beralih ke rutin sistem operasi yang berkaitan dengan tipe interupsi itu.
Tipetipe interupsi antara lain:
o   Interupsi clock (clock interrupt).
Sistem operasi (penjadwal) menentukan apakah proses yang sedang running telah mengeksekusi selama jatah waktunya. Jika telah mencapai jatahnya maka proses dialihkan ke state ready dan proses lain dijadwalkan running.

o   Interupsi masukanlkeluaran (110 interrupt).
Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta layanan sistem operasi. Sistem operasi segera menentukan aksiaksi masukan keluaran yang harus dilakukan.
o   Page/memory fault.
Pernroses menemui pengacuan alamat memori maya yang tidak terdapat di memori utarna (fisik). Sistem operasi segera memerintahkan untuk mengambil page yang terdapat alamat yang dimaksud untuk dipindah ke memori utama.

b.      Trap.
Trap adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian (exception conditions) yang dihasilkan proses yang running, seperti usaha illegal dalam mengakses file.
Dengan adanya trap, sistem operasi menentukan apakah kesalahan yang dibuat merupakan kesalahan fatal?
Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan rancangan sistern operasi. Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau memperingatkan ke pemakai.
Saat terjadi trap, mungkin terjadi pengalihan proses mungkin pula resume proses.
o   Supervisor call.
Supervisor call yaitu panggilan meminta atau mengaktifkan bagian sistem operasi.
Contoh : Proses pemakai running meminta layanan masukan keluaran seperti membuka file. Panggilan ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya, penggunaan system call membuat proses pemakai blocked karena diaktifkan proses kernel (sistem, operasi).
c.       Pengalihan Proses dan Pengalihan Konteks
Banyak buku teks sistem operasi menyamakan antara pengalihan proses (process switching) dan pengalihan konteks (contextswitching). Tidak terdapat istilah untuk aksi penanganan interupsi. Kita membedakan antara istilah pengalihan proses dan pengalihan konteks.

o   Pengalihan Konteks
Pengalihan konteks dapat terjadi tanpa pengalihan state proses yang sedang running, sedang pengalihan proses pasti melibatkan juga pengalihan konteks.

Siklus penanganan interupsi adalah :
1. Pemroses menyimpan konteks program saat itu yang sedang dieksekusi ke stack.
2. Pemroses menset register PC dengan alamat awal program untuk interrupt handler.
Setelah kedua aktivitas itu, pemroses melanjutkan menjalankan instruksiinstruksi berikutnya & interrupt handler yang melayani interupsi. Pelaksanaan interupsi ini belum tentu mengakibatkan pengalihan ke proses lain yaitu pengalihan PCB proses dari senarai running ke senarai lain (blocked, ready, dan sebagainya), dan sebaliknya. Kita menyebut pengalihan konteks adalah untuk pengalihan sementara yang singkat, misalnya untuk mengeksekusi program interrupt handler.
Setelah selesai penanganan interupsi maka konteks yang terdapat pada stack dikembalikan sehingga kembali ke konteks proses semula tanpa terjadi pengalihan ke proses lain.
Pengalihan proses terjadi jika proses yang running beralih menjadi state lain (ready, blocked, dan sebagainya), kemudian sistem operasi harus membuat perubahanperubahan berarti terhadap lingkungannya.


Sumber:
https://loveninx.wordpress.com/2010/12/30/makalah-manajemen-proses/