Saturday 28 July 2012

Menambahkan repository backtrack 5 pada ubuntu 12.04

untuk para linuxer pengguna ubuntu udah update belum ubuntu anda menjadi ubuntu 12.04 kalo belum silahkan update udah ada yang baru nih Ubuntu 12.04 LTS tapi kali ini saya tidak membahas tentang ubuntu 12.04 tetapi saya ingin memberi tahu cara menambahkan repository backtrack5 pada ubuntu 12.04. Backtrack 5 r1 dan r2 menggunakan base Ubuntu 10.04 LTS dengan menggunakan tampilan Gnome 2 yang sangat membosankan nah dari pada update backtrack anda menjadi Ubuntu 12.04 mendingan anda install aplikasi backtrack pada ubuntu 12.04 anda. oke tanpa basa basi lagi ikuti cara saya dibawah ini.

Pada umunya reposiroty backtrack cuma ada satu dan bisa dipakai untuk semua distro linux turunan Debian seperti Ubuntu, Backtrack, dll. berikut cara menambahkan repository backtrack 5 pada ubuntu 12.04 LTS :
Install synaptic dahulu karena Ubuntu 12.04 LTS tidak menyediakan synaptic, saya melalui terminal dengan perintah :
sudo apt-get install synaptic
Download key backtrack 5, melalui terminal dengan perintah :
wget http://all.repository.backtrack-linux.org/backtrack.gpg
Tambahkan source backtrack melalui terminal dengan perintah :
sudo gedit /etc/apt/source.list
lalu tambahkan kode ini di bawah sekali :
deb http://all.repository.backtrack-linux.org revolution main microverse non-free testing
deb http://32.repository.backtrack-linux.org revolution main microverse non-free testing
deb http://64.repository.backtrack-linux.org revolution main microverse non-free testing
deb http://source.repository.backtrack-linux.org revolution main microverse non-free testing
setelah selesai menambahkan source.list silahkan update melalui terminal dengan perintah :
sudo apt-get update
Selesai.

Thursday 26 July 2012

Cara Pengisian IP pada Slackware

#ketik lah root pada saat login slarkware
#kemudian masukan password ‘ .......’
#lalu silakan mengisi ip config
#sebelumnya cek kembali ip mengunakan eth brp
#jika sudah tahu lalu ketik /etc/rc.d/rc.inet1.conf
#akan muncul tampilan pengisian
Eth0
Ip address “”
Subnetmask “”
Dhcp “”

Eth1
Ip address “”
Subnetmask “”
Dhcp “”

Gateway “”

#setelah mengisi tekan perintah ctrl + o untuk menyimpan

#lalu tekan kembali ctrl + x

#kemudian isi kembali perintah /etc/rc.d/rc.inet1 restart

#setelah selesai kembali cek ip dengan mengetik # ifconfig –a

#lalu isi nameserver #nano /etc/resolv.conf

#periska kembali dengan cara melihat seluruh ip #cat /etc/resolv.conf

Selesai

Sharing Menggunakan Samba

·         Buatlah sebuah direktory yang akan dishare misalnya ketik perintah # chmod 755 /mnt/document

·         Setelah selesai lalukan perintah dengan mengetik #mkdir /mnt/document dimana document dipilih untuk dishare

·         Lalu ketik perintah # chmod –R 755 /mnt/document agar dapat mengakses seluruh document pemilik

·         Kemudian ketik juga # nano /etc/samba/smb.conf agar dapat masuk ke direktori samba

·         Kemudian ketiklah cont dibawah
[global]
Workgroup = Slacker
Server string = Slackware
Security = share
Log file = /var/log/samba.%m
Max log size = 50
Socket options = TCP_NODELAY

[Data]
Path = /mnt/document
Browseable = yes
Guest ok = yes
Writeable = yes

·         kemudian simpan ctrl + o file samba tsb lalu exit

·         lalu jalankan service samba dengan mengetik #/etc/rc.d/rc.samba start

·          kalau sudah muncul dengan tidak ada eror berarti benar

·         Kemudian ketik perintah #testparm


·         Dienter 2 kali nanti akan keluar tampilan global dan data setelah pengujian pada testparm ternyata benar atau salah

·         Selanjutnya ketik perintah #mkdir /mnt/share untuk mengetesnya jika tidak ad eror berarti benar

·         Lalu ketik kembali #touch /mnt/document/namakalian.txt

·         Selanjutnya ketik # mount –t smbfs //ipaddress/data/mnt/share

·         Dimintai pasword dienterkan saja nanti akan keluar txt pada ip teman kita

·         Kemudian dienter 2 kali

·         Setelah itu ketik # ls /mnt/share lalu enter untuk melihat jenis text apa yg disimpan jika tidak ad eror berarti benar

·         Kemudian untuk mematikan share ketik #umount /mnt/share

·         Setelah itu matikan linux komputer nya dengan perintah # init 0

PDC dengan SAMBA

·         Masukan ip add yang sesuai anda inginkan dilinux slackware ketik perintah #nano /etc/rc.d/rc.inet1.conf sebelumnya cek dulu gunakan eth yg hidup dengan perintah #ifconfig -a
Ip : 192.168.10.1
Netmask : 255.255.255.0
·         Setelah itu ketik perintah # mkdir –p /home/samba/profiles
·         Lalu ketik lagi #mkdir –p /home/samba/netlogin
·         Terus ketik perintah #chmod 755 /etc/rc.d/rc.samba
·         Kemudian ketik juga #/etc/rc.d/rc.samba restart
·         Lalu ketik #adduser
·         Buad login user : namauser
·         Buad intial group : users
·         Lalu ketik #/home/samba/profiles/namauser enter
·         Tekan arrow atas / up lalu enter
·         Ketik shell pada sesuai perintah #shell /bin/bash
·         enter next sampai muncul password
·         buad password 123456 trs dipaksakan jika dia meminta very simple artinya terlalu pendek
·         setelah sukses dibuat
·         ketik perintah #group add samba – clients
·         ketik #smbpasswd –a root
pass : 123456
·         kemudian ketik #smbpasswd –a namauser
pass : 123456
·         setelah pembuatan server samba di linux coba cek kembali dengan client server biasa
·         hidupkan pc client
·         lalu masukan username administrator dengan pasword AaAaAa1 lalu pilih slackware(this computer)
·         masukkan ip add 192.168.10.2 dan subnet 255.255.255.0
·         kemudian buka my computer klik mouse bagian kanan = propeties
·         lalu cari computer name ubah nama domain dengan change
·         pilih domain lalu buad nama slackware
·         ok
·         trs shutdown di log on
·         buka my computer klik propeties
·         cari computer name
·         lalu pilih add
·         trs masuk ke advanced
·         pilih find now
·         cari user dan group
·         pilih administrator
·         lalu pilih namauser kita buad
·         trs ok 2 kali
·         pilih yes untuk restart
·         sesudah restart masukan user namauser kita kemudian password 123456 trs ubah log on menjadi slackware
·         sesudah itu klik ok saja jika keluar tampilan ok
·         lalu cek di windows explorer liad pada profile dibawa tampilan harddisk

Algoritma DEADLOCK

Pada pembahasan di atas telah dikenal suatu istilah yang populer pada bagian semaphores, yaitu deadlock. Secara sederhana deadlock dapat terjadi dan menjadi hal yang merugikan, jika pada suatu saat ada suatu proses yang memakai sumber daya dan ada proses lain yang menunggunya. Bagaimanakah deadlock itu yang sebenarnya? Bagaimanakah cara penanggulangannya?


Latar Belakang


Misalkan pada suatu komputer terdapat dua buah program, sebuah tape drive dan sebuah printer. Program A mengontrol tape drive, sementara program B mengontrol printer. Setelah beberapa saat, program A meminta printer, tapi printer masih digunakan. Berikutnya, B meminta tape drive, sedangkan A masih mengontrol tape drive. Dua program tersebut memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah. Kondisi inilah yang disebut Deadlock atau pada beberapa buku disebut Deadly Embrace
Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam himpunan tersebut.
Terdapat kaitan antara overhead dari mekanisme koreksi dan manfaat dari koreksi deadlock itu sendiri. Pada beberapa kasus, overhead atau ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain, seperti pada real-time process control, mengizinkan deadlock akan membuat sistem menjadi kacau dan membuat sistem tersebut tidak berguna.
Contoh berikut ini terjadi pada sebuah persimpangan jalan. Beberapa hal yang dapat membuat deadlock pada suatu persimpangan, yaitu:
  • Terdapat satu jalur pada jalan.
  • Mobil digambarkan sebagai proses yang sedang menuju sumber daya.
  • Untuk mengatasinya beberapa mobil harus preempt (mundur).
Sangat memungkinkan untuk terjadinya starvation (kondisi proses tak akan mendapatkan sumber daya).






Sebuah cara visual (matematika) untuk menentukan apakah ada deadlock, atau kemungkinan terjadinya.
G = (V, E) Graf berisi node and edge. Node V terdiri dari proses-proses = {P1, P2, P3, ...} dan jenis resource. {R1, R2, ...} Edge E adalah (Pi, Rj) atau (Ri, Pj)
Sebuah panah dari process ke resource menandakan proses meminta resource. Sebuah panah dari resource ke process menunjukkan sebuah instance dari resource telah dtempatkan ke proses. Process adalah lingkaran, resource adalah kotak; titik-titik merepresentasikan jumlah instance dari resource Dalam tipe. Meminta poin-poin ke kotak, perintah datang dari titik.



Menurut Coffman dalam bukunya "Operating System" menyebutkan empat syarat bagi terjadinya deadlock, yaitu:
  1. Mutual Exclusion
Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu proses pada suatu waktu.
  1. Hold and Wait
Kondisi yang menyatakan proses-proses yang sedang memakai suatu sumber daya dapat meminta sumber daya yang lain.
  1. Non-pre-emptive
Kondisi dimana suatu sumber daya yang sedang berada pada suatu proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu melepaskannya.
  1. Circular Wait
Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber daya yang dimiliki oleh suatu proses oleh proses lainnya


Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
  1. Mengabaikan adanya deadlock.
  2. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.
  3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:
    • Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
    • Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
Dari penjabaran pendekatan diatas, terdapat empat metode untuk mengatasi deadlock yang akan terjadi, yaitu:

Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli Matematika, cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock harus ditangani. Sementara menurut para ahli Teknik, jika komputer lebih sering mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada kompilator atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan keadaan deadlock tersebut. Metode ini diterapkan pada sistem operasi UNIX dan MINIX.

Metode ini merupakan metode yang paling sering digunakan. Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Tetapi pencgahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk.
Metode pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang dapat menyebabkan deadlock terjadi pada saat eksekusi Coffman (1971).
Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion, jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos. Langkah yang digunakan adalah dengan spooling sumber daya, yaitu dengan mengantrikan job-job pada antrian dan akan dilayani satu-satu.
Beberapa masalah yang mungkin terjadi adalah:
  1. Tidak semua dapat di-spool, tabel proses sendiri tidak mungkin untuk di-spool
  2. Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock
Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan, jadi mutual exclusion benar-benar tidak dapat dihilangkan.
Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat menunggu sumber daya yang lain, maka deadlock dapat dicegah. Langkah yang digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang dibutuhkan. Namun jika terdapat sumber daya yang sedang terpakai maka proses tersebut tidak dapat memulai prosesnya.
Masalah yang mungkin terjadi:
  1. Sulitnya mengetahui berapa sumber daya yang dibutuhkan pada awal proses
  2. Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan hanya beberapa waktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses yang telah memintanya dari awal.
Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari meniadakan syarat kedua, karena dengan meniadakan syarat ketiga maka suatu proses dapat dihentikan ditengah jalan. Hal ini tidak dimungkinkan karena hasil dari suatu proses yang dihentikan menjadi tidak baik.
Cara terakhir adalah dengan meniadakan syarat keempat circular wait. Terdapat dua pendekatan, yaitu:
  1. Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu waktu, jika menginginkan sumber daya lain maka sumber daya yang dimiliki harus dilepas.
  2. Membuat penomoran pada proses-proses yang mengakses sumber daya. Suatu proses dimungkinkan untuk dapat meminta sumber daya kapan pun, tetapi permintaannya harus dibuat terurut.
Masalah yang mungkin terjadi dengan mengatur bahwa setiap proses hanya dapat memiliki satu proses adalah bahwa tidak semua proses hanya membutuhkan satu sumber daya, untuk suatu proses yang kompleks dibutuhkan banyak sumber daya pada saat yang bersamaan. Sedangkan dengan penomoran masalah yang dihadapi adalah tidak terdapatnya suatu penomoran yang dapat memuaskan semua pihak.
Secara ringkas pendekatan yang digunakan pada metode pencegahan deadlock dan masalah-masalah yang menghambatnya, terangkum dalam tabel dibawah ini.

Syarat
Langkah
Kelemahan
Mutual Exclusion
Spooling sumber daya
Dapat menyebabkan chaos
Hold and Wait
Meminta sumber daya di awal
Sulit memperkirakan di awal dan tidak optimal
No Pre-emptive
Mengambil sumber daya di tengah proses
Hasil proses tidak akan baik
Circular Wait
Penomoran permintaan sumber daya
Tidak ada penomoran yang memuaskan semua pihak
Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. Metode ini memeriksa dampak pemberian akses pada suatu proses, jika pemberian akses tidak mungkin menuju kepada deadlock, maka sumber daya akan diberikan pada proses yang meminta. Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan.
Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state.

Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara mengikuti urutan tertentu.

Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.


Algoritma penjadualan ini diungkapkan oleh Dijkstra (1965) lebih dikenal dengan nama Algoritma Bankir. Model ini menggunakan suatu kota kecil sebagai percontohan dengan suatu bank sebagai sistem operasi, pinjaman sebagai sumber daya dan peminjam sebagai proses yang membutuhkan sumber daya. Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya.
Beberapa kelemahan algoritma Bankir Tanenbaum (1992), Stallings (1995) dan Deitel (1990) adalah sebagai berikut:
  1. Sulit untuk mengetahui seluruh sumber daya yang dibutuhkan proses pada awal eksekusi.
  2. Jumlah proses yang tidak tetap dan berubah-ubah.
  3. Sumber daya yang tadinya tersedia dapat saja menjadi tidak tersedia kembali.
  4. Proses-proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan sinkronisasi antar proses.
  5. Algoritma ini menghendaki memberikan semua permintaan selama waktu yang berhingga.
Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisi deadlock dapat segera dilakukan. Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang diperlukan oleh proses-proses yang membutuhkannya. Beberapa cara digunakan untuk mendapatkan sumber daya yang diperlukan, yaitu dengan terminasi proses dan pre-emption (mundur) suatu proses. Metode ini banyak digunakan pada komputer mainframe berukuran besar.

Metode ini akan menghapus proses-proses yang terlibat pada kondisi deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang termasuk dalam metode ini adalah, sebagai berikut:
  • Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu mahal).
  • Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat diatasi (memakan banyak waktu).
  • Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan kedalaman dari rollback.
Metode ini lebih menekankan kepada bagaimana menghambat suatu proses dan sumber daya, agar tidak terjebak pada unsafe condition.
Beberapa langkahnya, yaitu:
  • Pilih salah satu - proses dan sumber daya yang akan di-preempt.
  • Rollback ke safe state yang sebelumnya telah terjadi.
Mencegah suatu proses agar tidak terjebak pada starvation karena metode ini.

PRODUCER CONSUMER PROBLEM

Dalam ilmu komputer, produsen-konsumen masalah (juga dikenal sebagai masalah bounded-buffer) adalah contoh klasik dari masalah sinkronisasi multi-proses. Masalahnya menggambarkan dua proses, produsen dan konsumen, yang berbagi bersama, tetap ukuran buffer. Tugas produsen adalah untuk menghasilkan sepotong data, memasukkannya ke buffer dan mulai lagi. Pada saat yang sama konsumen adalah mengkonsumsi data (yaitu mengeluarkannya dari buffer) salah satu bagian pada suatu waktu. Masalahnya adalah untuk memastikan bahwa produsen tidak akan mencoba untuk menambahkan data ke dalam buffer jika itu penuh dan bahwa konsumen tidak akan mencoba untuk menghapus data dari buffer kosong.

 Solusi untuk produsen adalah baik pergi untuk tidur atau membuang data jika buffer penuh. Kali berikutnya konsumen menghapus item dari buffer, ini akan memberitahu produsen yang mulai mengisi buffer lagi. Dengan cara yang sama, konsumen bisa tidur jika menemukan buffer yang akan kosong. Kali berikutnya produsen menempatkan data ke dalam buffer, maka konsumen bangun tidur. Solusi ini dapat dicapai melalui komunikasi antar-proses, biasanya menggunakan semaphores. Sebuah solusi tidak memadai bisa mengakibatkan kebuntuan dimana kedua proses sedang menunggu untuk dibangunkan.

Solusi ini memiliki kondisi lomba. Untuk mengatasi masalah tersebut, seorang programmer ceroboh bisa datang dengan solusi di bawah ini. Dalam larutan dua rutinitas perpustakaan digunakan, tidur dan bangun. Ketika tidur disebut, penelepon tersebut akan diblokir sampai proses lain membangunkannya dengan menggunakan rutin bangun. itemCount adalah jumlah item dalam buffer.

Masalah dengan solusi ini adalah bahwa ia mengandung kondisi lomba yang dapat mengarah ke jalan buntu. Pertimbangkan skenario berikut:
1. konsumen baru saja membaca itemCount variabel, melihat itu nol dan hanya akan bergerak di dalam blok-if.
2. Tepat sebelum memanggil tidur, konsumen terganggu dan produsen dilanjutkan.
3. Produsen menciptakan suatu item, meletakkannya ke dalam buffer, dan meningkatkan itemCount.
4. Karena buffer itu kosong sebelum penambahan terakhir, produsen mencoba untuk membangunkan konsumen.
 5. Sayangnya konsumen belum tidur, dan panggilan bangun hilang. Ketika konsumen kembali, ia pergi tidur dan tidak akan pernah terbangun lagi. Hal ini karena konsumen hanya terbangun oleh produsen ketika itemCount sama dengan 1.

Karena kedua proses akan tidur selamanya, kami telah lari ke jalan buntu. Solusi ini karena tidak memuaskan.
Analisis alternatif adalah bahwa jika bahasa pemrograman tidak mendefinisikan semantik dari pengaksesan konkuren terhadap variabel bersama (dalam hal ini itemCount kasus) tanpa menggunakan sinkronisasi, maka solusinya tidak memuaskan karena itu, tanpa perlu secara eksplisit menunjukkan kondisi lomba.

Semaphore memecahkan masalah panggilan bangun hilang. Dalam larutan di bawah ini kami menggunakan dua semaphores, fillCount dan emptyCount, untuk memecahkan masalah. fillCount bertambah dan emptyCount decremented ketika item baru telah dimasukkan ke dalam buffer. Jika produsen mencoba untuk pengurangan emptyCount sedangkan nilai adalah nol, produsen diletakkan untuk tidur. Kali berikutnya item dikonsumsi, emptyCount bertambah dan produser bangun. Konsumen bekerja analog.

Solusi diatas bekerja dengan baik ketika hanya ada satu produsen dan konsumen. Sayangnya, dengan beberapa produsen atau konsumen solusi ini berisi kondisi lomba yang serius yang dapat menghasilkan dua atau lebih proses membaca atau menulis ke dalam slot yang sama pada waktu yang sama. Untuk memahami bagaimana hal ini mungkin, bayangkan bagaimana prosedur putItemIntoBuffer () dapat diimplementasikan. Ini bisa berisi dua tindakan, salah menentukan slot yang tersedia berikutnya dan tulisan lain ke dalamnya. Jika prosedur tersebut dapat dijalankan secara bersamaan oleh beberapa produsen, maka skenario berikut ini mungkin:
1. Dua produsen emptyCount pengurangan
2. Salah satu produsen menentukan slot kosong berikutnya dalam buffer
3. Kedua produser menentukan slot kosong berikutnya dan mendapatkan hasil yang sama sebagai produsen pertama
4. Kedua produsen menulis ke slot yang sama
Untuk mengatasi masalah ini, kita membutuhkan suatu cara untuk memastikan bahwa hanya satu produsen yang mengeksekusi putItemIntoBuffer () pada suatu waktu. Dengan kata lain kita perlu cara untuk mengeksekusi critical section dengan pengecualian bersama. Untuk mencapai hal ini kami menggunakan semaphore mutex biner disebut. Karena nilai dari semaphore biner bisa hanya salah satu atau nol, hanya satu proses dapat mengeksekusi antara bawah (mutex) dan sampai (mutex). Solusi bagi produsen dan konsumen beberapa ditunjukkan di bawah ini.

Perhatikan bahwa urutan yang berbeda semaphores bertambah atau decremented sangat penting: mengubah urutan mungkin mengakibatkan deadlock.
[Sunting] Menggunakan monitor
Kode pseudo berikut menunjukkan solusi untuk masalah produsen-konsumen yang menggunakan monitor. Karena pengecualian reksa implisit dengan monitor, tidak ada usaha ekstra diperlukan untuk melindungi critical section. Dengan kata lain, solusi di bawah ini bekerja dengan sejumlah produsen dan konsumen tanpa modifikasi apapun. Perlu juga dicatat bahwa menggunakan monitor membuat kondisi balapan lebih sedikit mungkin dibandingkan ketika menggunakan semaphores.

Perhatikan penggunaan sementara pernyataan dalam kode di atas, baik ketika menguji apakah buffer penuh atau kosong. Dengan beberapa konsumen, ada kondisi lomba dimana satu konsumen mendapatkan diberitahukan bahwa item telah dimasukkan ke dalam buffer namun konsumen lain sudah menunggu pada monitor sehingga menghapusnya dari buffer sebagai gantinya. Jika saat itu bukan jika terlalu banyak item dapat dimasukkan ke buffer atau menghapus mungkin mencoba pada buffer kosong.

Cara Mounting Flashdisk Pada LINUX

1.      Buka aplikasi vmware workstation
2.      Jalankan Program LINUX
3.      Setelah itu Login
Login : root
Password : palcomtech
4.      Kemudian masukkan flash disk, posisi kursor pada linux bukan windows
5.      Setelah Flash disk terkoneksi, ketik pada directory:
Root@slack:# fdisk –l
6.      Setelah itu akan muncul directory flash disk yaitu : /dev/sda1
7.      Kemudian buat folder , dengan perintah :
root@slack:# mkdir home
8.      Setelah folder dibuat lakukan mounting ke flashdisk dengan perintah :
root@slack:# mount  /dev/sda1  /home
9.      Kemudian masuk ke folder yang kita buat :
root@slack:# cd  /home
root@slack:/home#
10.  Kemudian posisi sudah pada directory flashdisk, buat file dokumen dengan perintah :
root@slack:/home# nano ariyulianto.sh
11.  Agar file dokumen bis! di edit dan dibuka, masukkan :
root@slack:/home# chmod 755 ariyulianto.sh
sekaran file sudah bisa di edit dan dibaca
12.  Untuk melihat file pada folder home, jalankan perintah :
root@slack:/home# ls -l
13.  Membuka file dokumen untuk memasukkan data, dengan perintah :
root@slack:/home# nano ariyulianto.sh
14.  Untuk menyimpan file dan keluar, CTR - O kemudian ENTER lalu CTR – X
15.  Untuk melihat hasil file yang kita sudah buat :
 root@slack:/home# ./ariyulianto.sh  
16.  Untuk keluar dari Linux, ketik :
root@slack:/home# init O