CRITICAL REGION - SEMAPHORE MUTEX DALAM CPU OS SIMULATOR V

dokumen-dokumen yang mirip
T UGAS STUDI KASUS SISTEM OPERASI. Mutual Exclusion. Mata Kuliah : Sistem Operasi [ CF 1322] Disusun Oleh :

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

Apa yang akan dipelajari?

PROSES & THREADS 2 AGUS PAMUJI. SISTEM OPERASI - Proses & Threads

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM III Sinkronisasi Proses

Sistem Operasi. Proses dan Thread

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

Laporan Tugas Scheduling Pengantar Sistem Operasi

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Konkurensi. Faikul Umam

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

MANAJEMEN PROSES. Pointer State proses Keadaan proses: Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.

Sistem Operasi PENGATURAN PROSES

1.Proses control block dalam istilah lain Taks controlling block, Taks struct, atau Switchframe. Jelaskan dan berikan gambaran proses control block?

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Sistem Operasi. Konkurensi

BAB II TINJAUAN PUSTAKA

PROSES DAN THREADS DALAM SISTEM OPERASI

Bab 6: Sinkronisasi Proses. Latar Belakang

Sinkronisasi dan Deadlock Sistem Operasi

Processes. Processes. SISTIM OPERASI (Operating System) IKI-20230

Model Proses : 1. Sequential Process / bergantian 2. Multiprogramming 3. CPU Switching peralihan prosedur dalam mengolah 1 proses ke proses lainnya.

Pertemuan 4 KONKURENSI

A. Deskripsi Singkat. B. Tujuan Instruksional Umum (TIU) C. Bahasan. SILABUS MATA KULIAH Kode MK: Semester: Bobot SKS: 3. Matakuliah : SISTEM OPERASI

S.P. HARININGSIH, S.T.

Proses Sinkronisasi. Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

BAB II MANAJEMEN PROSES

Artikel Perbedaan Proses Dan Thread. Disusun Oleh : Nama : Rozy Putra Pratama NIM : Prodi : Sistem Informasi

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

Bab 3: Proses-Proses. Konsep Proses

B. Jawablah dengan ringkas dan lengkap. (Jawaban tidak lebih dari 10 kalimat) (Nilai 40) Solusi: kata kunci dalam huruf miring.

TUGAS SISTEM OPERASI

KONSEP PROSES STATUS PROSES

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

Sus Pokok Bahasan dan Sasaran Belajar

7 Sinkronisasi. Proses Sinkronisasi. Overview (1) Overview (2) Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

Rahmady Liyantanto liyantanto.wordpress.com

TUGAS SISTEM OPERASI

Bab 5. Sinkronisasi Proses POKOK BAHASAN: TUJUAN BELAJAR: 5.1 LATAR BELAKANG

MAKALAH SISTEM OPERASI Perbedaan Proses dan Thread. Disusun Oleh : NOVITA ANGGRAINI PUTRI

Kongkurensi LPOHLVSFOTJ!

SATUAN ACARA PERKULIAHAN MATA KULIAH SISTEM OPERASI (TK) KODE / SKS KK /4

Bab 3: Proses-Proses. Konsep Proses

Kelas: Nilai (Diisi Dosen):... IF

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Pertemuan #3: Sinkronisasi dan Deadlock

Thread. pada satu waktu. menjalankan banyak tugas/thread. yang sama

Soal-jawab Quiz 2. Oleh: Endro Ariyanto (END) Oktober 2008

Komunikasi & Sinkronisasi Proses

Operating System. Thread. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Konsep Proses. Proses adalah suatu program yang sedang diesekusi (running) Pada saat proses berlangsung :

PERBEDAAN PROSES DAN THREAD PADA SISTEM INFORMASI

Sistem Operasi - PCB (process control block)

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

Struktur Sistem Komputer

PROSES. Sistem Terdistribusi

BAB 4. SINKRONISASI & DEADLOCK

TUGAS Mata Kuliah : Sistem Terdistribusi

Process Synchronization

Mahasiswa dapat memahami konsep dasar deskripsi dan kontrol pada proses

Kuliah#7 TSK617 Pengolahan Paralel - TA 2011/2012. Eko Didik Widianto

Proses Control Block. Tugas Sistem Operasi

THREAD Ulir utas thread

Struktur Sistem Operasi

STRUKTUR CPU. Arsitektur Komputer

PROTEKSI MEMORI DAN CPU TERHADAP KESALAHAN PROGRAM PADA SISTEM OPERASI

Jawaban Soal UTS Instalasi dan Penggunaan Sistem Operasi Semester Genap 2014/2015 D3 Teknik Informatika, Fakultas Ilmu Terapan, Universitas Telkom

Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka

Fairuz El Said Sekedar Berbagi Sistem Operasi (SO) Konkurensi KONGKURENSI

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

Thread Proses merupakan sebuah program yang mengeksekusi THREAD tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu t

Struktur Sistem Komputer

1.PCB (process control block)

Bab 10. Konsep Proses

SISTEM OPERASI. Deskripsi Proses. Multiprogramming. Istilah dalam Proses. (multitasking) MANAJEMEN PROSES. Multiprogramming.

SILABUS JURUSAN MANAJEMEN - PROGRAM STUDI D3 MANAJEMEN INFORMATIKA DIREKTORAT DIPLOMA TEKNOLOGI INFORMASI UNIVERSITAS GUNADARMA

Andi Gustanto M / Kelas 22 / TI

Penjadwalan CPU. Badrus Zaman

Concurrency 1: y Mutual Exclusion dan Sinkronisasi (Perte rt muan ke muan -10) 10 Oktober 2014

Sistem operasi menjalankan banyak dan beragam program :

Ch t ap 7 er Operating System (OS)

Process Synchronization (Background)

1. New 2. Running 3. Waiting 4. Ready 5. Terminated

SISTEM OPERASI (MANAJEMEN PROSES)

Operating System: An Overview. Ch. 3: Process Management. Ch. 3: Process Management

Definisi (1) ready, dll.) Sering disebut dengan lightweight process. register set, dan stack. sama.

BAB 2 STRUKTUR SISTEM OPERASI. Komponen Sistem Operasi

Sleep and Wake Up. Tugas Kuliah. Mata kuliah : CF 1310 Sistem Operasi. Disusun oleh : UZLINA RAHMAWATI FIA MAHANANI

THREADS WINDOWS : PEMBUATAN, PENJADWALAN DAN SINKRONISASI Julius Bata Magister Ilmu Komputer Universitas Gadjah Mada

MANAJEMEN MEMORI SISTEM OPERASI

Sistem Operasi. Kongkurensi

Perbedaan Anatara Thread dan Proses

STRUKTUR SISTEM OPERASI

Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk satu unit (mis. disk pack atau tape reel) dari penyimpanan sekunder. Labelnya berisi

Pertemuan 2. Struktur Sistem Operasi

Concurrency C oncurrency 2 : Deadlock dan Starvation (P ( ertemuan ke ert -15) November 2014

Sistem terdistribusi Processes, Threads and Virtualization pertemuan 3. Albertus Dwi Yoga Widiantoro, M.Kom.

Transkripsi:

CRITICAL REGION - SEMAPHORE MUTEX DALAM CPU OS SIMULATOR V.7.2.27. Sp. Hariningsih 1 1 Program Studi Sistem Informasi, Universitas Dian Nuswantoro Semarang Masuk: 6 Nopember 2012, revisi masuk : 8 Desember 2012, diterima: 21 Januari 2013 ABSTRACT Operating system is a in computer program that regulates the resourcein a computer. The operating systems should monitor the status of each resource, decide which process has to get those resources, allocate resources, and claim back when it has done. To implement the process model, the operating system use a table / array called table with one entry for each process. Each entry contains the status of the process, the program counter, stack pointer, memory allocation, file status, scheduling information, etc. Wich from employment to ready status. In multiprogramming system, the processor also switch from one program to another program, run the program in a few milliseconds. At any given time, the processor is actually just did a program, but in a second of accumulation time, the processor was working on several programs, so the program look run in parallel. Critical region is a port of a program being access memory accordingly. Critical region happere on a mutual exclussion process, which is only one process being execute. Neverthless, there is a certain that we call race condition. It is a situation where some processes are access and manipulate the data accordingly. Thos, we have to pind some methode to prevent leftover process in writing process and reading process for data shared accordingly, at is mutual exclussion. It will examined on OS CPU simulator. Althought it can prevent the race conditions, it isn t enough to do cooperation between some proces in parallel efficiently in using data shared. Keywords : Critical Region/Section, Process, Mutual Exclussion, Semaphore, Storage. INTISARI Sistem operasi adalah program komputer yang mengatur resource-resource pada komputer. Sistem Operasi harus mengawasi status dari setiap sumber daya, memutuskan proses mana yang harus mendapatkan sumber daya tersebut, mengalokasikan sumber daya, dan meng-klaim kembali jika sudah selesai. Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel / array yang disebut tabel proses dengan 1 entry per-proses. Setiap entry berisi tentang status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling / penjadwalan informasi, dll dari status kerja ke status siap. Dalam sistem multiprogramming, prosesor juga beralih dari satu program ke program yang lain, menjalankan program tersebut beberapa milidetik. Pada suatu waktu tertentu, prosesor sebenarnya hanya melakukan satu program, tetapi dalam akumulasi waktu satu detik, prosesor terasa bekerja pada beberapa program, sehingga memberikan kesan pada pemakai bahwa beberapa program dilakukan secara paralel. Critical region/critical section merupakan bagian dari program yang sedang mengakses memori secara bersama. Critical region terjadi pada proses mutual exclussion, yaitu jaminan hanya satu proses yang sedang dilakukan eksekusi. Jika terjadi race condition yaitu situasi proses mengakses dan memanipulasi data secara bersamaan harus ditemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama yaitu dengan mutual ecxlussion. Hal ini akan di uji cobakan pada OS CPU simulator. Walaupun dapat mencegah race condition, tetapi tidak cukup untuk melakukan kerjasama antar proses-proses secara paralel dengan baik dan efisien dalam menggunakan shared data. Kata kunci : Critical Region/Section, Process, Mutual Exclussion, Semaphore, Storag 134

1 aningsp@gmail.com PENDAHULUAN Sistem komputer selama ini selalu dikembangkan berkaitan dengan pengembangan ilmu dan teknologi pengetahuan. Hal ini berdampak pada sistem operasi yang selalu mengikuti perkembangan perangkat keras dan perangkat lunak. Komputer merupakan media bantu penyelesai masalah dari pengguna. Permasalahan tersebut diselesaikan oleh prosesor komputer yang kita tunggu-tunggu sebagai modal dalam pengambilan keputusan yaitu data dan informasi. Peran sistem operasi di dalam sistem komputer berfungsi sebagai pengendali di antara sumberdaya sumberdaya salah satunya adalah sumberdaya pemroses. Sejauh ini pengguna mempunyai anggapan bahwa saat komputer melakukan eksekusi terhadap proses-proses, komputer tersebut hanya melakukan eksekusi terhadap satu proses dan satu masalah saja. Hal ini tidak benar, prosesor akan melaksanakan eksekusi kepada antrian proses secara adil. Jika dipandang dari segi pengguna mempunyai anggapan bahwa dirinya sendiri yang sedang dieksekusi dan tidak ada proses lain yang sedang dikerjakan dalam prosesor. Anggapan ini salah, dengan adanya sistem operasi yang berfungsi sebagai pengontrol dan pengendali prosesor maka semua antrian proses dilayani secara adil dan seksama sesuai dengan jatah waktu eksekusinya. Proses-proses akan dieksekusi secara bersama dalam jeda waktu milidetik saja. Anggapan pengguna ini sering disebut dengan pseudoparalellisme, karena cepatnya akses tersebut. Sistem operasilah yang berfungsi sebagai kendali diantara proses-proses sehingga sistem operasi harus mengawasi status dari setiap sumber daya, menetapkan alokasi dan dealokasi sumberdaya kepada proses-proses yang membutuhkan. METODE Konsep penting dalam sistem operasi adalah status proses yaitu abstraksi dari jalannya program. Saat ini komputer diciptakan dapat melakukan beberapa proses pada saat yang bersamaan, misalnya pada saat tertentu komputer mengeksekusi program dari pengguna, komputer dapat juga membaca dari disk, mencetak ke printer atau ke layar bahkan saat itu juga sedang mengambil informasi dari internet sekalipun, tetapi bagaimana dengan terjadinya redudansi data, inkonsistensi data ataupun terjadi race condition. Kunci untuk mencegah masalah proses bersama yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah sehingga tidak terjadi proses writing dan reading kepada shared data pada saat yang sama yaitu mutex (mutual exclussion). Critical section merupakan bagian program yang sedang mengakses memori atau sumber daya yang di pakai bersama. Hal ini akan dijelaskan dengan penggunaan 2 thread pada saat yang bersamaan pada sistem dengan semaphore mutex CPU OS simulator V.7.2.27. Proses dikatakan konkuren apabila proses-proses tersebut secara bersamasama melakukan eksekusi sumberdaya komputer, baik sumberdaya memori, sumberdaya informasi, maupun sumberdaya device. Jadi bisa disimpulkan proses mempunyai sifat konkuren adalah suatu proses dimana lebih dari satu proses dapat dieksekusi oleh sumber daya komputer dalam waktu yang bersamaan. Digambarkan seperti pada Gambar 1. R1 P2 Daya P1 R1 = Gambar 1. Proses Konkurensi Sumber P1 = Proses 1 P2 = Proses 2 Tetapi proses konkuren ini mempunyai beberapa permasalahan, antara lain adalah proses mutual exclussion. Proses mutual exclussion adalah jaminan bahwa hanya dirinya sendirilah yang dieksekusi oleh sistem komputer. Bisa disimpulkan bahwa 135

proses mutual exclussion adalah single user, karena hanya satu proses saja yang dapat menggunakan sumber daya dan proses lain menunggu untuk dieksekusi setelah proses lain telah selesai dieksekusi. Proses Sinkronisasi yaitu proses tunggal yang mempunyai masalah proses produsen dan masalah proses konsumer. Masalah produsen terjadi apabila proses-proses akan menciptakan proses, tetapi di dalam memori tersebut mempunyai informasi kapasitas memori penuh sehingga memori tersebut tidak akan bisa menampung berkas lagi. Hal ini dapat diselesaikan dengan penciptaan buffer (penyangga), tetapi akan menimbulkan masalah baru yaitu multiprogramming dengan sistem swapping. Masalah konsumer terjadi apabila pada saat proses pengalokasian data kepada user tetapi file data tersebut tidak tersedia dalam artian memori file not found. Dua macam masalah ini hanya dapat diselesaikan dengan metode sinkronisasi. Gambar 3. Masalah proses sinkronisasi Metode Sinkronisasi merupakan suatu metode untuk menyelesaikan masalah pada proses sinkronisasi, yaitu masalah produsen dan masalah konsumen. Metode ini untuk menjaga ketersediaan data atau berkas didalam memori apabila terdapat user yang ingin menggunakan sumber daya informasi dan akan menjaga ketersediaan memori yang kosong apabila user ingin menciptakan proses dalam memori tersebut. Dengan kata lain metode sinkronisasi bertugas menjaga memori dalam keadaan siap untuk dialokasikan dan didealokasikan kepada para pemakainya. Oleh karena itu diperlukan metode sinkronisasi untuk menjaga kondisi memori tersebut. Semaphore termasuk pendekatan yang diajukan oleh Djikstr auntuk digunakan untuk memonitor dan mengontrol ketersediaan sumberdaya sistem, seperti halnya pembagian segmen memori (Tanembaum, 1992). Seperti proses yang sedang aktif dapat berhenti pada suatu saat (seperti halnya pada penjadwalan proses Round Robin yang dapat dihentikan oleh nilai quantumnya), sampai proses mendapatkan sinyal interupsi untuk melanjutkan eksekusinya. Semaphore mempunyai dua sifat (Wiliiam Stelling, 2011), yaitu: Semaphore dapat mempunyai variabel dengan nilai nonnegatif dan terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V. Operasi Down (P). Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked. Operasi down adalah atomic, dalam artian proses dalam status aktif tak dapat diberhentikan oleh proses lain sampai proses tersebut selesai di eksekusi. Operasi Up (V). Operasi Up menaikkan nilai semaphore yang terdapat dalam antrian proses. Urutan proses yang akan dieksekusi dipilih secara acak. Semaphore adalah sinyal interupsi yang digunakan untuk memeriksa apakah sumber daya saat ini sedang digunakan oleh proses (thread). Misalnya, jika suatu proses ingin menggunakan sumber daya outputan, terlebih dahulu perlu memastikan apakah peralatan pencetak (outputan) sedang dalam status off atau on. Jika device tersebut dalam keadaan on maka sinyal interupsi akan memberikan kode penundaan untuk melakukan akses pada proses yang antri untuk di lakukan pencetakan, sampai peralatan pencetakan mengirimkan sinyal interupsi off pada antrian proses baru dapat dilakukan eksekusi. Tetapi jika peralatan outputan dalam status off, maka output device akan mengirimkan sinyal interupsi kepada antrian proses yang berarti 136

peralatan outputan siap melaksanakan perintah pencetakan (Sp. Hariningsih, 2003). Proses Multiprogramming pada tingkat perangkat keras, melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat atau bersamaan, karena setiap proses mempunyai satu CPU maya. Proses Pseudoparallelism. Pada level tingkat pengguna, melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan. Secara konsep setiap proses mempunyai satu CPU maya, tetapi pada kenyataannya dalah multiprogramming. Maka akan lebih mudah menganggap kumpulan proses yang berjalan secara parallel. PEMBAHASAN Hubungan state dasar proses dalam pemroses dapat digambarkan seperti tampak pada Gambar 4. (Bambang Hariyanto, 1997) Gambar 4. Diagram state dasar proses Keterangan: New Ready Running : Proses baru yang masuk dalam antrian proses : Proses menunggu untuk dieksekusi : Eksekusi diantara antrian proses Terminated : Proses yang telah selesai dieksekusi dengan status rampung secara sempurna Waiting : Proses yang menunggu untuk dieksekusi karena proses yang terdapat status processor belum selesai dengan sempurna sehingga proses memerlukan kontrol inputan kembali. Dispatch : Status proses beralih ke interupsi peralatan keluaran Interupt/ Time out : Status pemroses yang meminta untuk beralih ke proses lain karena proses telah selesai dilaksanakan. Ataupun proses diberhentikan oleh pemroses secara paksa (seperti pada model round robin) dan beralih ke proses lain. Dengan menggunakan aplikasi CPU-OS Simulator program critical region, hal ini akan membuat dua thread yaitu thread1 dan thread2. Masingmasing thread akan menaikkan nilai variabel global g dalam tiap loop. Yang termasuk syncronisasi yaitu mulai dari Ladd no 000,0006,0012,0016,0020. Proses tersebut dapat dilihat pada Gambar 5. Pada modifikasi yang pertama ditambahkan kata kunci synchronise. Pemberian tambahan kunci sinkronisasi pada komunikasi diantara proses-proses membutuhkan place by calls untuk mengirim dan menerima data primitive. Proses tersebut dapat dilihat pada Gambar 6. Terdapat design yang berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan dapat dilakukan dengan :[1].Pengiriman yang diblok : Proses pengiriman data akan diblok 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 memblok sampai pesan tersedia. [4]. Penerimaan yang tidak diblok : Penerima mengembalikan pesan valid atau null. Critical regions seringkali diimplementasikan menggunakan semaphore dan mutex. Semaphore adalah pendekatan yang dikemukakan Djikstra. Prinsip semaphore adalah Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Proses dipaksa berhenti sampai proses memperoleh penanda tertentu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan strukstur penanda yang sesuai kebutuhannya. Variabel khusus untuk penandaan ini disebut semaphore. Semaphore adalah alat untuk sinkronisasi yang tidak membutuhkan busy waiting. Semaphore S(wait) berupa variable integer. Semaphore hanya dapat 137

diakses melalui operasi atomik yang tak dapat diinterupsi sampai kode selesai. Gambar 5. Running Process Round Robin Gambar 6. Program source input pada CPU-OS simulator 138

Gambar 7. Program code synchronisasi Pada modifikasi yang kedua digunakan kata kunci enter dan leave. Pada system komputer terdapat sumberdaya yang tidak dapat dipakai bersama pada saat yang bersamaan seperti pada penggunaan peralatan pencetak, Sumberdaya seperti hanya dapat menjalankan satu proses pada suatu saat, sumber daya ini disebut sumber daya kritis. Program yang menggunakan sumber daya kritis disebut sedang memasuki critical section. Sistem operasi memberikan fasilitas untuk pemrogram dapat memberikan indikasi keberadaan critical region. Sistem operasi menyediakan layanan ( berupa system call ) untuk mencagah suatu proses masuk kedalam critical region akan tetapi di dalam critical region terdapat proses lain yang sedang berjalan. Mutual exclusion merupakan solusi bagi masalah pada critical region / section. Ketika wait dijalankan oleh thread, kita memiliki dua kemungkinan yaitu Penghitung S adalah positif, dalam hal ini, counter mengalami penurunan sebesar satu. Kemungkinan kedua Penghitung S adalah nol, dalam hal ini,thread ditangguhkan dan dimasukkan ke dalam antrian pribadi S. Ketika Sinyal dijalankan oleh thread, kita memiliki dua kemungkinan:. Kemungkinan pertama antrian S tidak memiliki thread menunggu Penghitung S ditingkatkan oleh satu dan proses kembali dieksekusi maka modifikasi yang mungkin adalah S:=S-1. wait(s) : while(s) <= 0 do no-op; S:=S-1; Signal(S) : S:=S+1; Antrian S telah menunggu threads, Dalam hal ini, konter S harus nol (lihat pembahasan wait di atas). Salah satu proses menunggu akan diizinkan untuk meninggalkan antrian dan melanjutkan pelaksanaannya. Operasi wait adalah atomik. Ini berarti sekali kegiatan wait mulai (yaitu, pengujian dan penurunan nilai counter dan memasukkan benang ke dalam antrian), mereka akan terus sampai akhir tanpa gangguan apapun. Lebih tepatnya, meskipun ada banyak langkah untuk melaksanakan wait dan Signal, langkahlangkah ini dianggap sebagai instruksi non-interruptible tunggal. Demikian pula, hal yang sama berlaku untuk Sinyal. Apalagi, jika lebih dari satu proses mencoba mengeksekusi signal, hanya satu dari mereka akan berhasil. Kita tidak boleh membuat asumsi tentang mana proses yang akan berhasil. Status wait karena dapat menyebabkan thread untuk memblokir (yaitu, ketika counter nol), ia memiliki efek yang sama dari operasi kunci dari sebuah kunci mutex. Demikian pula, sebuah sinyal dapat melepaskan thread wait, dan mirip dengan membuka operasi. Bahkan, semaphores dapat 139

digunakan sebagai kunci mutex. Pertimbangkan semaphore S dengan nilai awal 1. Kemudian, wait dan Signal untuk mengunci dan membuka. Perlu diingat bahwa nilai awal counter dari S adalah 1. Misalkan sejumlah thread mencoba untuk eksekusi wait. Karena hanya ada satu thread berhasil dapat mengeksekusi wait, thread ini, katakanlah A, menyebabkan counter berkurang sebesar 1, dan memasuki bagian yang kritis. Karena nilai awal counter adalah 1, sekali thread A memasuki critical section, konter menjadi 0, dan, sebagai hasilnya semua usaha berikutnya dalam melaksanakan wait akan diblokir. Oleh karena itu, wait mirip untuk mengunci. Ketika Sebuah thread keluar dari critical section, Signal dijalankan. Jika ada menunggu thread, salah satu dari mereka akan dirilis, dan thread ini dirilis memasuki critical section. Perhatikan bahwa counter masih nol (karena, dalam hal ini, Sinyal tidak meningkatkan dan status wait tidak mengurangi counter), yang berarti semua thread berikutnya yang mencoba mengeksekusi wait diblokir. Di sisi lain, jika tidak ada thread menunggu, pelaksanaan Sinyal menyebabkan nilai dari counter akan meningkat dengan 1, sehingga nilai saat ini 1. Dalam hal ini, thread berikutnya yang mengeksekusi status bisa masuk ke bagian kritis. Oleh karena itu, Sinyal untuk membuka. Singkatnya, pengaturan counter untuk 1 awalnya akan menjamin bahwa paling banyak satu thread bisa di bagian kritis. Nilai counter adalah 1 atau 0, dan tidak pernah memiliki nilai lain sehingga disebut sebagai semaphore biner. Jika diganti counter dengan variabel Boolean dan menafsirkan 1 dan 0 sebagai true (kunci terbuka) dan false (kunci tertutup), masing-masing, maka semaphore biner menjadi kunci mutex. Karena itu kunci mutex atau semaphore biner bergantian. Proses tersebut dapat dilihat pada Gambar 7. Berikut contoh nyata untuk suatu critical region (atau mutex region). Program Give_File_to_spooler; Var in : Integer; berkasa, berkasb: File; ProcedureStore (Berkas: File, next_slot: Integer); {Untukmenyimpanberkaspadaslot kenext_slot} Procedure ProsesA; Var next_free_slot: Integer; Begin next_free_slot:=in; store(berkasa, next_free_slot); in:=next_free_slot+1; End; ProcedureProsesB; Var next_free_slot:integer; Begin next_free_slot:=in; store(berkasb, next_free_slot); in:=next_free_slot+1; End; Beberapa arsitektur komputer memiliki instruksi test-and-set untuk menerapkan critical region. karena Metode Test and Set melakukan testing dan memodifikasi isi memori secara atomic, struktur fungsi Test and Set sebagai berikut : boolean TestAndSet (boolean &target) { boolean rv = target; tqrget = true; return rv; } Untuk menyelesaikan permasalahan mutual exclusion dengan metode Test and Set maka digunakan variable umum berikut : boolean lock = false; Sedangkan Process Pi mempunyai struktur sebagai berikut : do { while (TestAndSet(lock)) ; critical section lock = false; remainder section } Dengan menggunakan OS CPU Simulator V. 7.2.27 maka dapat dibuktikan bahwa kejadian race condition pada critical region dapat dihindari (Gambar 7) 140

KESIMPULAN Thread mirip seperti little-mini process. Setiap thread berjalan sekuensial yang mempunyai program counter dan stack sendiri. Thread juga men-share CPU seperti proses. Thread dalam satu proses menempati address space yang sama, tidak ada proteksi penggunaan memori antar thread karena proses dimiliki oleh satu user. Thread dapat berada pada empat state yang berbeda, seperti process (running, blocked, ready, terminated) Terdapat tiga model process pada server : [1}]thread diciptakan 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. Dari definisi semaphore dapat disimpulkan Secara umum, tidak ada cara untuk mengetahui sebelum proses decrement sebuah semaphore akan terblokir atau tidak. Setelah proses increment semaphore dan proses lain akan berjalan, kedua proses terus berjalan bersamaan. Tidak ada cara untuk mengetahui proses, jika salah satu, akan segera melanjutkan pada sistem prosesor tunggal. Saat signal semaphore, Anda tidak perlu tahu apakah proses yang lain sedang menunggu, sehingga jumlah proses yang diblokir mungkin nol atau satu. Prinsip semaphore adalah dua proses atau lebih dapat bekerjasama dengan menggunakan penanda-penanda sederhana. Proses dipaksa berhenti sampai proses tersebut memperoleh penanda tertentu. Dengan menggunakan OS CPU Simulator V. 7.2.27 maka dapat dibuktikan bahwa kejadian race condition pada critical region dapat dihindari. Englewood Cliffs, New Jersey. 1992. Bambang Hariyanto, Ir, Sistem Operasi. Penerbit Informatika Bandung, cetakan pertama Desember 1997. Sp. Hariningsih, Sistem Operasi. Penerbit Graha Ilmu Yogyakarta, Edisi pertama : 2003, viii+176 halaman. ISBN : 979-3289-24-4 William Stallings, Operating Systems, Fourth Edition, Prentice Hall. 2001 http://docs.linux.cz/ http://linux-tutorial.info/ DAFTAR PUSTAKA Andrew S. Tanembaun, Modern Operating System, Prentice Hall. 141