Dokumen tersebut menjelaskan tentang semaphore, yaitu primitive sinkronisasi yang lebih tinggi dari lock untuk mengatur urutan eksekusi thread. Semaphore beroperasi dengan menggunakan counter dan antrian thread, dimana operasi wait() akan menurunkan counter sedangkan signal() akan menaikkan counter dan membangunkan thread di antrian. Nilai awal semaphore menentukan jumlah thread yang dapat mengakses resource secara bersamaan.
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
Makalah ini membahas tentang peranan semaphore dalam sistem operasi. Semaphore adalah variabel integer yang digunakan untuk sinkronisasi antarproses. Terdapat dua operasi pada semaphore yaitu down dan up. Semaphore dapat berupa binary semaphore atau counting semaphore. Fungsi utama semaphore adalah menyelesaikan masalah section kritis dengan memenuhi syarat eksklusivitas bersama, kemajuan, dan waiting terbatas.
Deadlock terjadi ketika dua atau lebih proses saling menunggu sumber daya masing-masing untuk waktu yang tidak terbatas. Ada empat kondisi penting yang memungkinkan terjadinya deadlock: eksklusi bersama, menunggu dan memegang, menunggu berputar, dan tidak ada pengambilalihan paksa. Deadlock dapat dicegah, dihindari, terdeteksi, atau dipulihkan dengan berbagai strategi seperti algoritma penjaga bank dan strusi
Dokumen tersebut membahas tentang sinkronisasi dan deadlock dalam sistem operasi. Sinkronisasi digunakan untuk mengatur jalannya beberapa proses secara bersamaan agar saling bertukar data dengan jumlah yang sama dan mencegah terjadinya inkonsistensi data. Deadlock terjadi ketika dua program saling memegang sumber daya yang dibutuhkan program lain sehingga tidak ada yang bisa melanjutkan. Ada beberapa cara untuk mencegah terjadinya dead
Interupsi adalah permintaan khusus pada mikroprosesor untuk menghentikan tugas saat ini dan melakukan tugas lain, seperti layanan I/O. Fungsinya meliputi pengalihan pengolahan instruksi ke rutin layanan interupsi dan manajemen pengeksekusian rutin antara CPU dan modul I/O. Jenis interupsi termasuk internal, eksternal, dan perangkat lunak. Penyebabnya seperti program, kegagalan perangkat keras, timer, dan penanganan ek
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
Makalah ini membahas tentang peranan semaphore dalam sistem operasi. Semaphore adalah variabel integer yang digunakan untuk sinkronisasi antarproses. Terdapat dua operasi pada semaphore yaitu down dan up. Semaphore dapat berupa binary semaphore atau counting semaphore. Fungsi utama semaphore adalah menyelesaikan masalah section kritis dengan memenuhi syarat eksklusivitas bersama, kemajuan, dan waiting terbatas.
Deadlock terjadi ketika dua atau lebih proses saling menunggu sumber daya masing-masing untuk waktu yang tidak terbatas. Ada empat kondisi penting yang memungkinkan terjadinya deadlock: eksklusi bersama, menunggu dan memegang, menunggu berputar, dan tidak ada pengambilalihan paksa. Deadlock dapat dicegah, dihindari, terdeteksi, atau dipulihkan dengan berbagai strategi seperti algoritma penjaga bank dan strusi
Dokumen tersebut membahas tentang sinkronisasi dan deadlock dalam sistem operasi. Sinkronisasi digunakan untuk mengatur jalannya beberapa proses secara bersamaan agar saling bertukar data dengan jumlah yang sama dan mencegah terjadinya inkonsistensi data. Deadlock terjadi ketika dua program saling memegang sumber daya yang dibutuhkan program lain sehingga tidak ada yang bisa melanjutkan. Ada beberapa cara untuk mencegah terjadinya dead
Interupsi adalah permintaan khusus pada mikroprosesor untuk menghentikan tugas saat ini dan melakukan tugas lain, seperti layanan I/O. Fungsinya meliputi pengalihan pengolahan instruksi ke rutin layanan interupsi dan manajemen pengeksekusian rutin antara CPU dan modul I/O. Jenis interupsi termasuk internal, eksternal, dan perangkat lunak. Penyebabnya seperti program, kegagalan perangkat keras, timer, dan penanganan ek
Ada beberapa model pemrograman paralel yang digunakan untuk mengembangkan aplikasi paralel, termasuk model memori bersama, thread, message passing, data paralel, dan hybrid. Model ini tidak spesifik untuk jenis arsitektur tertentu, melainkan merupakan abstraksi dari arsitektur perangkat keras dan memori. Contohnya adalah penggunaan message passing pada mesin memori bersama.
Ringkasan dokumen tersebut adalah:
1) Dokumen tersebut membahas perancangan sistem termasuk perancangan output, input, dan jenis-jenis laporan serta format laporan yang dapat dihasilkan oleh sistem informasi.
2) Perancangan output berfokus pada menghasilkan informasi yang berkualitas untuk pengambilan keputusan, sedangkan perancangan input membahas format pengumpulan data seperti formulir kertas dan elektronik.
3) Jenis lap
Dokumen tersebut membahas tentang manajemen input output pada sistem operasi, mencakup perangkat keras pengendali input output seperti piranti I/O, controller perangkat, bus I/O, serta metode transfer data seperti programmed I/O, interrupt-driven I/O, dan DMA.
Fetch Cycle adalah siklus pengambilan data ke memori atau register. Aliran data siklus pengambilan (Fetch Cycle) berdasarkan urutan kejadian selama siklus interuksi tergantung pada rangan CPU. Sebuah CPU yang menggunakan register memori alamat (MAR), Register memori buffer (MBR), pencacah program (PC) dan register instruksi(IR). Proses pada siklus pengambilan (Fetch Cycle), instruksi dibaca dari memori. Selanjutnya, PC berisi alamat instruksi berikutnya yang akan diambil. Alamat ini dipindahkan di MAR(Memory Address Register) dan ditaruh di bus alamat. Kemudian Control Unit meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke MBR (Memory Buffer Register), kemudian dipindahkan ke IR (Instruction Regiter). PC (Program Counter) naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya. Siklus selesai, CU memeriksa isi IR (Instruction Register) untuk menentukan apakah IR (Instruction Register) berisi Operand Specifier yang menggunakan pengalamatan tak langsung (Indirect).
Dokumen tersebut membahas tentang logika proposisi, yang merupakan pernyataan yang bernilai benar atau salah. Terdapat beberapa jenis proposisi majemuk seperti negasi, konjungsi, dan disjungsi. Dokumen juga menjelaskan konsep inferensi sebagai proses penarikan kesimpulan dari beberapa proposisi berdasarkan aturan-aturan tertentu.
Dokumen tersebut membahas tentang kontrol input/output (I/O) dan saluran I/O. Kontrol I/O bertugas mengelola berkas dan perangkat penyimpanan serta mengoordinasi komunikasi antara CPU dan perangkat penyimpanan. Saluran I/O berperan sebagai prosesor yang mengendalikan aliran data antara memori utama dan perangkat I/O. Dokumen ini juga menjelaskan beberapa jenis saluran I/O dan perangkat I/O serta teknik manaj
Dokumen tersebut berisi jawaban mahasiswa terhadap 10 soal tentang sistem basis data. Jawaban-jawaban tersebut mencakup berbagai topik seperti akses yang dapat merusak basis data, penyebab inkonsistensi data, tingkat pengamanan basis data, otoritas data, penerapan integritas data, skema pengendalian persaingan pada basis data terdistribusi, dan pendekatan untuk membangun basis data sistem yang kompleks.
Dokumen ini membahas sistem komunikasi data, yang merupakan proses pengiriman dan penerimaan data secara digital antara dua perangkat atau lebih melalui jaringan. Sistem komunikasi data memungkinkan pengiriman data besar-besaran secara efisien, tanpa kesalahan, dan ekonomis untuk mendukung manajemen data dan informasi secara terpusat atau tersebar.
Ada beberapa model pemrograman paralel yang digunakan untuk mengembangkan aplikasi paralel, termasuk model memori bersama, thread, message passing, data paralel, dan hybrid. Model ini tidak spesifik untuk jenis arsitektur tertentu, melainkan merupakan abstraksi dari arsitektur perangkat keras dan memori. Contohnya adalah penggunaan message passing pada mesin memori bersama.
Ringkasan dokumen tersebut adalah:
1) Dokumen tersebut membahas perancangan sistem termasuk perancangan output, input, dan jenis-jenis laporan serta format laporan yang dapat dihasilkan oleh sistem informasi.
2) Perancangan output berfokus pada menghasilkan informasi yang berkualitas untuk pengambilan keputusan, sedangkan perancangan input membahas format pengumpulan data seperti formulir kertas dan elektronik.
3) Jenis lap
Dokumen tersebut membahas tentang manajemen input output pada sistem operasi, mencakup perangkat keras pengendali input output seperti piranti I/O, controller perangkat, bus I/O, serta metode transfer data seperti programmed I/O, interrupt-driven I/O, dan DMA.
Fetch Cycle adalah siklus pengambilan data ke memori atau register. Aliran data siklus pengambilan (Fetch Cycle) berdasarkan urutan kejadian selama siklus interuksi tergantung pada rangan CPU. Sebuah CPU yang menggunakan register memori alamat (MAR), Register memori buffer (MBR), pencacah program (PC) dan register instruksi(IR). Proses pada siklus pengambilan (Fetch Cycle), instruksi dibaca dari memori. Selanjutnya, PC berisi alamat instruksi berikutnya yang akan diambil. Alamat ini dipindahkan di MAR(Memory Address Register) dan ditaruh di bus alamat. Kemudian Control Unit meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke MBR (Memory Buffer Register), kemudian dipindahkan ke IR (Instruction Regiter). PC (Program Counter) naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya. Siklus selesai, CU memeriksa isi IR (Instruction Register) untuk menentukan apakah IR (Instruction Register) berisi Operand Specifier yang menggunakan pengalamatan tak langsung (Indirect).
Dokumen tersebut membahas tentang logika proposisi, yang merupakan pernyataan yang bernilai benar atau salah. Terdapat beberapa jenis proposisi majemuk seperti negasi, konjungsi, dan disjungsi. Dokumen juga menjelaskan konsep inferensi sebagai proses penarikan kesimpulan dari beberapa proposisi berdasarkan aturan-aturan tertentu.
Dokumen tersebut membahas tentang kontrol input/output (I/O) dan saluran I/O. Kontrol I/O bertugas mengelola berkas dan perangkat penyimpanan serta mengoordinasi komunikasi antara CPU dan perangkat penyimpanan. Saluran I/O berperan sebagai prosesor yang mengendalikan aliran data antara memori utama dan perangkat I/O. Dokumen ini juga menjelaskan beberapa jenis saluran I/O dan perangkat I/O serta teknik manaj
Dokumen tersebut berisi jawaban mahasiswa terhadap 10 soal tentang sistem basis data. Jawaban-jawaban tersebut mencakup berbagai topik seperti akses yang dapat merusak basis data, penyebab inkonsistensi data, tingkat pengamanan basis data, otoritas data, penerapan integritas data, skema pengendalian persaingan pada basis data terdistribusi, dan pendekatan untuk membangun basis data sistem yang kompleks.
Dokumen ini membahas sistem komunikasi data, yang merupakan proses pengiriman dan penerimaan data secara digital antara dua perangkat atau lebih melalui jaringan. Sistem komunikasi data memungkinkan pengiriman data besar-besaran secara efisien, tanpa kesalahan, dan ekonomis untuk mendukung manajemen data dan informasi secara terpusat atau tersebar.
Makalah ini membahas tentang algoritma dan pemrograman khususnya tentang jenis-jenis perulangan dalam bahasa pemrograman seperti perulangan FOR, perulangan WHILE, dan perulangan DO WHILE beserta contoh kode dan flowchartnya. Makalah ini juga menjelaskan pengertian Java dan bahasa pemrograman serta menarik kesimpulan perbedaan ketiga jenis perulangan tersebut.
Dokumen tersebut membahas tentang looping atau perulangan dalam pemrograman, termasuk struktur perulangan for, while, do...while, dan repeat until beserta contoh kode dan flowchartnya.
NAMA: Sekar Setyaningtyas
NIM: 19175016
Prodi/smt: Teknik Informatika/Enam
MK: Pemrograma Delphi
Materi: Fungsi (def) pada Python
Dosen Pengampu: Rifki Dwi Kurniawan, S.Kom
Disusun untuk memenuhi salah satu tugas dari MK pemrograman delphi dengan materi Fungsi (def) pada Python.
Riset Teknologi Informasi - Tugas 03 - Paper Review on “Naive Bayes Classifi...DEDE IRYAWAN
Abstract— Di studi ini melihat informasi produk BPJS dalam peran masyarakat yang merupakan pengguna utama prosuk tersebut. Analisis sentimen dilakukan dengan memanfaatkan media sosial sebagai dasar utama pengumpulan data. Dalam penelitian ini, tahapan yang dilakukan adalah pengumpulan data dan dilanjutkan ke Post Tagging di komunitas twitter. Selanjutnya data tersebut diklasifikasikan lagi menggunakan model Naïve Bayes untuk mendapatkan hasil yang optimal
APPLIED DATABASE III - Slide Arsitektur Data MiningDEDE IRYAWAN
Arsitektur data mining terdiri dari data cleaning, data integration, data mining engine, pattern evaluation, dan graphical user interface. Metode data mining meliputi prediksi (seperti klasifikasi dan regresi), deskripsi (seperti clustering dan association rule discovery). Klasifikasi digunakan untuk memprediksi kelas data baru, sedangkan regresi memprediksi atribut bernilai riil. Clustering memecah data menjadi kelompok serupa dan association rule menemukan hubungan antar item yang sering dibeli bersama.
APPLIED DATABASE III - Modul Data PreprocessingDEDE IRYAWAN
Dokumen tersebut membahas konsep dan teknik data preprocessing yang meliputi pembersihan data, integrasi data, transformasi data, reduksi data, dan diskritisasi data untuk memperbaiki kualitas data sebelum proses data mining."
Riset Teknologi Informasi - Modul 6 - Judul, Baris Kepemilikan, Abstrak, dan...DEDE IRYAWAN
Modul ini membahas tentang judul, baris kepemilikan, abstrak, dan kata kunci dalam penulisan ilmiah. Topik utama meliputi penjelasan tentang unsur-unsur penting dalam penulisan ilmiah seperti judul yang ringkas dan menarik perhatian, baris kepemilikan yang menunjukkan penulis dan lembaga, serta abstrak dan kata kunci yang menggambarkan isi tulisan.
MANAJEMEN PROYEK PERANGKAT LUNAK - Modul 6 - MANAJEMEN BIAYA PROYEKDEDE IRYAWAN
Prinsip Dasar dalam Manajemen Biaya Proyek
CEO (Chief Executive Officer) atau manajer eksekutif perusahaan sebagai salah satu stakeholder proyek yang sangat penting perannya, biasanya mengetahui lebih banyak tentang keuangan perusahaan, namun sedikit mengetahui tentang IT. Sehingga manajer proyek IT harus dapat menjembatani antara kebutuhan biaya proyek dengan keuangan perusahaan dalam bahasa mereka.
MANAJEMEN PROYEK PERANGKAT LUNAK - Modul 5 - MANAJEMEN WAKTU PROYEKDEDE IRYAWAN
1. Dokumen tersebut membahas tentang manajemen waktu proyek, termasuk aktivitas-aktivitas yang perlu dilakukan dalam manajemen waktu proyek seperti mendefinisikan aktivitas, mengurutkan aktivitas, memperkirakan durasi aktivitas, dan menyusun jadwal proyek.
2. Beberapa teknik yang disebutkan untuk manajemen waktu proyek adalah diagram jaringan proyek, precedence diagramming method (PDM), critical path method (CPM), dan pengg
The man is looking for a part-time campus job. He speaks to a woman at the campus employment office. She asks him questions to determine a suitable job, like his availability and desired hours. He can work noon to 20 hours per week on weekdays and weekends. The woman has him fill out a form and tells him to call back tomorrow for potential job news.
The document contains a series of conversations where common idioms or sayings are used. Each conversation is followed by a multiple choice question testing the meaning of the idiom used. The idioms encountered include "better late than never", "two heads are better than one", "there's no time like the present", "just my luck", "to each his own", "no sooner said than done", "you could've knocked me down with a feather", "we're all in the same boat", and "she's head and shoulders above the rest". The document aims to help learners understand the meaning behind common English idioms.
This document contains 10 conversations between a man and woman. Each conversation is followed by a question about what one of the speakers meant. The conversations use conditional sentences with "if" and conditional perfect tense ("would have") to imply missing information or assumptions. The document tests the reader's ability to understand implied meaning from conditional statements.
The document contains 10 sections describing conversations where one person expresses a wish about a situation. In each case, the wish implies some negative aspect about the current circumstances, such as that there are too many people in line ahead of them, the woman did not inform the man about a parking ticket, and the man arrived too late to get a good seat for an event.
TOEFL Exercise 13 - Emphatic Expression of SURPRISEDEDE IRYAWAN
The document describes a series of short dialogues where one person makes an assumption about another based on limited information. In each case, the assumption made is incorrect. The dialogues are presented to highlight how easily assumptions can be made and how often those assumptions turn out to be wrong.
TOEFL Exercise 12 - Expression of UNCERTAINITY and SUGGESTIONDEDE IRYAWAN
The document contains examples of conversations where one person expresses uncertainty or makes a suggestion. In each conversation, one person asks a question about what the other person means or suggests. The answers provided indicate that the person is not completely certain of something, believes something to be the case, or suggests an alternative option.
TOEFL Exercise 11 - Expression of AGREEMENTDEDE IRYAWAN
The document contains 10 examples of expressions of agreement in conversations. Each conversation includes a statement by one person and a response by another person. The response expressions include "Me too", "So would I", "Neither am I", "You can say that again", "I'll say", "I'm not either", "Don't they", "Isn't it", and "Neither can I". In each case, the response indicates that the second person agrees with the opinion or sentiment expressed in the original statement.
TOEFL Exercise 10 - NEGATIVE WITH COMPARATIVEDEDE IRYAWAN
This document contains 10 TOEFL reading comprehension questions. Each question is preceded by a short dialogue between a man and woman using comparative structures like "couldn't be happier", "never tried harder", and "couldn't have been any lower". The questions then ask what the man or woman means in their response.
This document contains 10 examples of conversations using expressions with "almost negative" meanings. In each conversation, one person makes a statement using an expression like "hardly ever", "only", or "scarcely" and the other person is asked what the first person meant. The answers provided explain the actual meaning behind each statement, which is often the opposite of what a literal interpretation might suggest.
The document discusses double negative expressions and provides examples of statements using double negatives along with questions about the implications of the statements and their answers. The examples show that double negative statements can imply the opposite of what is literally said through the use of terms like "wasn't unable", "wasn't unaffected", or statements that something "wasn't well" or "wasn't much better".
This document contains a series of short dialogues between a man and a woman. Each dialogue is followed by a question about what one of the speakers meant and multiple choice answers. The dialogues cover topics like taking out the trash, attending a lecture, library hours, watering plants, restaurant reviews, finishing a work project, and hotel recommendations. The document tests the reader's comprehension of implied meanings in conversations.
TOEFL EXERCISE 3 - AVOID SIMILAR SOUNDSDEDE IRYAWAN
1. Identify the keywords in the second line, or first line (some are in both lines).
2. Distinguish the similar sounds that exist in the conversation and the in the written options.
3. To choose which word is actually said, you may set it in a context.
For example: TOO – TWO – TO
THREE – TREE – TEA
TOEFL EXERCISE 1 - FOCUS ON THE SECOND LINEDEDE IRYAWAN
1. Answer to the questions is PROBABLY and MOSTLY, in the second line but NOT ALL.
2. Listen to both speakers, is you understand the first speaker, that’s really good, but you must understand the second line, except for some skills ahead.
3. Try to catch the meaning, not the translation of each word. Meaning needs senses.
Dalam membuat penelitian diperlukan persiapan matang, salah satunya adalah membuat sebuah desain penelitian agar penelitian kita tetap pada jalurnya. Dalam membuat desain penelitian diperlukan kerangka kerja. Berikut ini adalah 3 Elemen Kerangka Kerja:
- Asumsi Filosofis terhadap apa yang merupakan Knowledge Claims (Philosophical Paradigms)
- Strategy of inquiry : prosedur umum penelitian
- Prosedur detil pengumpulan data, analisa dan penulisan: Metoda (Methods)
1. MODUL S.O – SEMAPHORE (IND)
TUJUAN
Menjelaskan perbedaan antara sinkronisasi dengan locks dan semaphore
Mengidentifikasi penggunaan semaphore
Menggambarkan operasi semaphore dasar dan inisialisasi semaphore
MENGAPA PERLU SEMAPHORE
Locks hanya menyediakan mutual exclusion
o Sehingga memastikan hanya 1 thread saja pada critical section untuk waktu tertentu (saat
share resource penting seperti kasus bank kemarin)
Mungkin perlu lebih dari itu : Menambahkan urutan pada penjadwalan thread
o Contoh : Produser/Konsumer
Produser : Memproduksi resource (data)
Consumer : Mengkonsumsi resource (data)
o Contoh
Urutan perintah : ps | grep “gcc” | wc
ps sebagai produser, grep menggunakan hasil dari ps dan wc baru berjalan
setelah menggunakan gasil dari grep.
o Produser dan Konsumer tidak bisa beroperasi dalam tahap lock yang sekuensial/bergantian,
karena akan banyak jadi context switching yg membuat operasi tidak efisien, jadi kita perlu :
Menempatkan buffer berukuran fix antara produser dan konsumer
Mensinkronisasikan akses ke buffer
Produser bisa tetap “memproduksi” selama buffer belum penuh, consumer bisa
tetap menggunakan hasil produksi selama buffer belum kosong.
SEMAPHORE
APA ITU SEMAPHORE
Semaphore adalah sebuah primitive untuk sinkronisasi yang lebih tinggi levelnya daripada lock
Ditemukan oleh Dijkstra pada 1965 sebagai bagian dari Proyek Sistem Operasi
Semaphore adalah
o Sebuah counter yang dimanipulasi secara atomik melalui dua operasi : signal dan wait.
o wait(semaphore) : lakukan decrement (diturunkan nilainya) pada counter, jika counter
bernilai zero maka lakukan block sampai semaphore di”nyalakan” sinyalnya (is signaled)
sering disebut juga P(), dari kata belanda yang artinya test, dan juga sering
disebut down()
2. o signal(semaphore) : lakukan increment pada counter, “bangunkan” satu pengantri bila
ada.
Sering disebut juga V(), dari bahasa Belanda yang artinya increment (naikkan), dan
juga sering disebut up()
o sem_init(semaphore,counter) : set nilai counter pertama.
IMPLEMENTASI SEMAPHORE PD PSEUDOCODE
Gambar di atas adalah pseudo code untuk algortitam dari semaphore
Pertama kita punya structure yaitu value yang menunjukan hitungan/cacahan/count ke atas
dan kebawah, dan queue L yang merupakan list proses-proses agar kita bisa men-track proses-proses
mana yang sedang menunggu sehingga kita dapat membangunkannya (wake up) kemudian.
Fungsi wait() seperti yang dibahas sebelumnya : Bila value (nilai semaphore) lebih besar dari nol,
decrement value, bila tidak tambahkan proses ke list/antrian dan lakukan block pada proses tsb
sampai sampai seseorang membangunkannya.
Fungsi signal() bertujuan mengecek apakah list tidak kosong . Bila list (antrian) tidak kosong, hilangkan
proses P dari antrian L dan bangunkan proses P tsb, bila list kosong, increment value.
Wait() dan signal() adalah operasi pd critical section karena mereka sama sama megakses value dan
antrian. Jadi mereka harus dieksekusi secara atomik (satuan) satu sama lain karena itu ada operasi
yang sama dengan lock yaitu operasi blocking
BLOCKING SEMAPHORE
Tiap semaphore memiliki sebuah antrian proses/thread yang berkaitan.
3. o Bila wait() di call oleh sebuah thread :
Bila semaphore “available” (nilainya 1 atau lebih) maka thread akan diteruskan
(tetap berjalan)
Bila semaphore “unavailable” maka thread di block dan menunggu di antrian.
o Memanggil signal() akan membuka semaphore
Bila ada thread sedang menunggu di antrian, satu thread di unblock
Bila tidak ada thread di antrian, buat sebuah signal untuk diingat saat sebuah wait()
dicall dilakukan dengan meng-increment value semaphore
INISIALISASI SEMAPHORE
Bila kita inisialisasi semaphore ke 1 , apa artinya?artinya ada bendera semaphore berkibar (available)
o Thread pertama yang memanggil wait() dapat terus berjalan (running)
Karena thread pertama tersebut sudah memakai “hak berjalan/hak akses” maka
tanda bendera semaphore harus “diturunkan” (semaphore unavailable) Nilai
senaphore berubah dari 1 ke 0
o Bila ada thread kedua yang memanggil wait() maka akan diblock (karena tidak ada bendera
semaphore berkibar)
Thread kedua ini akan mengantri, menunggu giliran mendapat hak akses/hak
berjalan,
semaphore tetap bernilai 0
o Bila thread pertama sudah selesai “urusannya” maka ia akan memanggil signal()
Ternyata ada thread dua sedang ‘tidur’ di antrian. Thread dua dibangunkan karena
thread 1 sudah selesai ,
semaphore tetap bernilai 0 , tetap tidak boleh ada thread lain yg mengakses karena
sekarang ada thread 2 yang diberi hak akses
o Bila thread kedua sekarang sudah selesai urusannya dan memanggil signal()
Karena tidak ada lagi thread yang mengantri, bendera semaphore dikibarkan
nilai semaphore berubah dari 0 ke 1
Thread selanjutnya yang akan mengakses akan memanggil wait() dan langsung
boleh mengakses tanpa menunggu.
Bila kita lihat sistem semaphore itu berlaku seperti lock mutual exclusive (Mutex Lock)!
NILAI SEMAPHORE
Bagaimana bila nilai semaphore diinisialisasi ke 2?
o Maka ada dua thread yang boleh mengakses/berjalan pada saat yang sama.
o Kode inisialisasinya : sem_init(sem,2)
Jadi penggunaan nilai semaphore adalah untuk menunjukkan alokasi jumlah thread yang dapat
mengakses resource (shared buffer/ device) secara bersamaan
KUIS
1. Jelaskan Perbedaan Lock biasa dengan Semaphore
2. Gambarkan algoritma dari sinkronisasi menggunakan semaphore
REFERENSI