Ilustrasi: Linux Evaluasi dan Ilustrasi

• Implementasi: langsung mengimplementasi pada sistem sebenarnya. Paling efektif, namun mahal. Tabel 16.3. Scheduling Priorities in Linux Priorities Scheduling class 0-99 System Threads, Real time SCHED_FIFO, SCHED_RR 100-139 User priorities SCHED_NORMAL Tabel 16.4. Scheduling Priorities in Solaris Priorities Scheduling class 0-59 Time Shared, Interactive, Fixed, Fair Share Scheduler 60-99 System Class 100-159 Real-Time note real-time higher than system threads 160-169 Low level Interrupts Rujukan [Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley Sons. [WEBIBMNY] IBM Corporation. NY. General Programming Concepts – Writing and Debugging Programs – http:publib16.boulder.ibm.com pseries en_US aixprggd genprogc ls_sched_subr.htm . Diakses 1 Juni 2006. [WEBIBM1997] IBM Coorporation. 1997. General Programming Concepts: Writing and Debugging Programs – Threads Scheduling http:www.unet.univie.ac.at aix aixprggd genprogc threads_sched.htm . Diakses 1 Juni 2006. [WEBLindsey2003] Clark S Lindsey. 2003. Physics Simulation with Java – Thread Scheduling and Priority – http:www.particle.kth.se ~fmi kurs PhysicsSimulation Lectures 10A schedulePriority.html . Diakses 1 Juni 2006. [WEBMooreDrakos1999] Ross Moore dan Nikos Drakos. 1999. Converse Programming Manual – Thread Scheduling Hooks – http:charm.cs.uiuc.edu manuals html converse 3_3Thread_ Scheduling_Hooks.html . Diakses 1 Juni 2006. [WEBVolz2003] Richard A Volz. 2003. Real Time Computing – Thread and Scheduling Basics – http:linserver.cs.tamu.edu ~ravolz 456 Chapter-3.pdf . Diakses 1 Juni 2006. [WEBPRI2007] Scott Cromar. 2007. Princeton University [Unix Systems]– http:www.princeton.edu~unixSolaristroubleshootschedule.html . Diakses 10 maret 2007. [WEBOSL2005] Max Bruning. 2005. A Comparison of Solaris, Linux, and FreeBSD Kernels– http:www.opensolaris.org os article 2005-10-14_ a_comparison_of_solaris__linux_ and_freebsd_kernels . Diakses 10 maret 2007. 116

Bagian IV. Proses dan Sinkronisasi

Proses, Penjadualan, dan Sinkronisasi merupakan trio yang saling berhubungan, sehingga seharusnya tidak dipisahkan. Bagian yang lalu telah membahas Proses dan Penjadualannya, sehingga bagian ini akan membahas Proses dan Sinkronisasinya.

Bab 17. Konsep Interaksi

17.1. Pendahuluan

Dalam bab ini kita akan mengulas bagaimana hubungan antar proses dapat berlangsung, misalnya bagaimana beberapa proses dapat saling berkomunikasi dan bekerja sama, pengertian sinkronasi dan penyangga, sistem client-server dan RPC, serta penyebab deadlock dan starvation. Sinkronisasi diperlukan untuk menghindari terjadinya ketidakkonsistenan data akibat adanya akses data secara konkuren. Proses-proses disebut konkuren jika proses-proses itu ada dan berjalan pada waktu yang sama, proses-proses konkuren ini bisa bersifat independen atau bisa juga saling berinteraksi. Proses-proses konkuren yang saling berinteraksi memerlukan sinkronisasi agar terkendali dan juga menghasilkan output yang benar.

17.2. 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 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. 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

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

17.3. Sinkronisasi

Komunikasi antara proses membutuhkan subroutine untuk mengirim dan menerima data primitif. Terdapat desain yang berbeda-beda dalam implementasi setiap primitif. Pengiriman pesan mungkin 119