Senin, 27 Juni 2011

Jasa Pembuatan Akun Google Adsense Murah

Sebelum saya umumkan bagaimana tata cara pemesana atau order akun google adsense, biarkanlah saya jelaskan dulu apa itu Google Adsense yang selama ini diidam-idamkan oleh banyak blogger.

Apa itu Google Adsense?

AdSense adalah program kerjasama periklanan melalui media Internet yang diselenggarakan oleh Google. Melalui program periklanan AdSense, pemilik situs web atau blog yang telah mendaftar dan disetujui keanggotaannya diperbolehkan memasang unit iklan yang bentuk dan materinya telah ditentukan oleh Google di halaman web mereka. Pemilik situs web atau blog akan mendapatkan pemasukan berupa pembagian keuntungan dari Google untuk setiap iklan yang diklik oleh pengunjung situs, yang dikenal sebagai sistem pay per click (ppc) atau bayar per klik.

Selain menyediakan iklan-iklan dengan sistem bayar per klik, Google AdSense juga menyediakan AdSense untuk pencarian (AdSense for Search) dan iklan arahan (Referral). Pada AdSense untuk pencarian, pemilik situs web dapat memasang kotak pencarian Google di halaman web mereka. Pemilik situs akan mendapatkan pemasukan dari Google untuk setiap pencarian yang dilakukan pengunjung melalui kotak pencarian tersebut, yang berlanjut dengan klik pada iklan yang disertakan pada hasil pencarian. Pada iklan arahan, pemilik situs akan menerima pemasukan setelah klik pada iklan berlanjut dengan tindakan tertentu oleh pengunjung yang telah disepakati antara Google dengan pemasang iklan tersebut.

Selengkapnya, silakan baca disini !

Kenapa harus Google Adsense? Kenapa tidak PPC Indonesia saja?

Google Adsense merupakan program PPC terbesar dan paling diminati di dunia. Karena pendapatannya sangat luar biasa dan menggiurkan. Satu klik yang kita peroleh bisa berharga $50 bahkan lebih. Selain itu format iklannya tidak stagnan alias bervariasi dan menarik sehingga akan lebih sedap di mata pengunjung blog. Lagipula, iklan yang muncul sangat relevan atau cocok sekali dengan konten blog tempat dimana iklan Google Adsense terpasang. Lain halnya dengan PPC Indonesia.

PPC Indonesia memang bisa dijadikan alternatif jika anda tidak diterima di google adsense tapi pertanyaannya berapa pendapatan dari PPC Indonesia yang anda terima? Bagaimana format iklannya?

Saya juga dulu (sampai sekarang) termasuk publisher dari PPC dari Indonesia, untuk namanya mungkin tidak perlu saya sebutkan karena anda bisa melihatnya sendiri sekarang. Saya telah memasang iklan tersebut selama lebih dari 6 bulan dan lumayan mendapat jumlah klik yang cukup banyak akan tetapi pendapatan yang saya peroleh hanya Rp. 8.000 saja. PPC dari Indonesia masih menggunakan IP sebagai patokan kliknya jadi meskipun anda mendapat jumlah klik yang banyak belum tentu itu dianggap valid semua.

Kita coba bandingkan dengan Google adsense. Di 1 minggu pertama saya sebagai publisher adsense. Saya sudah mendapat $5. Hebatkan, apalagi blog yang saya punya visitornya belum terlalu banyak tapi kenapa bisa mendapat segitu? Jawabannya simpel dan mudah, karena dari setiap iklan yang diklik harganya ada yang $0.1 dan $1.

Bila dirupiahkan $1 adalah Rp. 8000 (dibulatkan agar mudah). Berapa harga per klik PPC dari Indonesia? Cuma Rp. 300 sampai Rp. 500 saja. Nilai per klik dari google adsense berkali-kali lipat dari pendapatan PPC Indonesia. Coba saja buktikan sendiri!

Apa saja syarat agar diterima oleh Google Adsense?

Untuk diterima di google adsense tentu saja harus mempunyai web atau blog tapi blog yang anda punya haruslah berbahas inggris karena blog berbahasa indonesia belum support google adsense. Meskipun anda bisa diterima di google adsense menggunaan blog bahasa indonesia namun anda tidak akan bisa menampilkan adsense for konten.Yang bisa anda tampilkan hanya, adsense for search, adsense for feed dan adsense for domain. Padahal pendapatan terbesar dari google adsense dihasilkan dari adsense for konten.

Selain itu, untuk diterima sebagai publisher google adsense, konten yang anda miliki tidak boleh copas (hasil dari copy paste) dan mengandung unsur pornografi. Dan persyaratan yang membuat daftar di google adsense adalah blog nya minimal harus sudah berumur 6 bulan atau lebih.

Silakan baca ketentuannya dari Google Adsense langsung disini !

Lalu, kenapa harus memilih saya?

Berawal dari permasalahan blogger yang sulit untuk diterima di google adsense, maka saya berinisiatif untuk membuka layanan jasa pembuatan akun google adsense murah dan legal. Ini saya maksudkan agar para blogger lain yang belum mempunyai google adsense bisa ikut menikmati manisnya dollar yang di dapat dari google adsense.

Sebagai seorang publisher, saya ingin agar semakin banyak blogger-blogger indonesia yang menjadi publisher adsense karena pendapatan dari google adsense ini bisa mengalahkan gaji PNS selama 3 bulan bahkan lebih. Saya memasang tarif jasa pembuatan akun google adsense yang terjangkau murah dan terjamin.

Biaya yang saya kenakan hanya Rp. 50.000 saja.

Untuk jasa pemesanan pembuatan akun google adsense, silahkan kirimkan data diri anda meliputi :

Nama lengkap :
Alamat Rumah :
Kota tempat anda tinggal :
Kode Pos :
No Hp :

Semua data di atas harus benar dan wajib di si karena proses withdrawl dari google adsense hanya bisa dilakukan bila data-data di KTP anda sama dengan data yang anda masukan ketika mendaftar.

Kirimkan data diri anda tersebut ke e-mail saya : doodeyme@gmail.com

Atau bisa juga langsung sms ke saya di 085737170452

Bila anda telah mengirimkan data yang saya minta di atas, silahkan sms saya untuk konfirmasi agar bisa langsung saya tanggapi.

Mungkin anda bertanya, kenapa saya tidak memasang akun google adsense saya di blog ini. Maka, saya pun menjawab. Mohon maaf saya tidak memasang iklan dari google adsense di blog ini, itu demi keamanan dari akun yang saya miliki.

Tunggu apa lagi, segera pesan sebelum banyak yang order! ;)

Salam.
Doodey Erick.

Minggu, 26 Juni 2011

Mencari Ide Bisnis Di Rumah Yang Menguntungkan

Jika kita hendak mencari ide ide bisnis di rumah yang menguntungkan, maka hendaknya kita harus berani mengatakan bahwa ide ini tidak hanya berada dalam fikiran kita, akan tetapi ide ini harus kita realisasikan dan menanggung segala resiko yang ada. Dan jika sudah berhasil menemukan ide bisnis di rumah yang menguntungkan, maka kita harus segera bertindak dengan cepat, karena dengan tindakanlah maka ide-ide tersebut bisa menjadi kenyataan.

Mengambil keputusan setelah menemukan ide bisnis di rumah yang menguntungkan, adalah tindakan besar yang akan mengantarkan anda pada kesuksesan berusaha, karena jika ide tersebut hanya berada pada alam fikiran anda, maka tidak akan ada perubahan yang signifikan.

Saya beri contoh bagaimana menemukan ide bisnis di rumah yang menguntungkan, misalnya anda memiliki seperangkat komputer yang "nganggur" alias tidak dipakai cuma hanya untuk bermain game saja, tidak ada salahnya jika anda memulai bisnis yang bisa menggunakan komputer tersebut untuk berbisnis, contohnya membuka jasa rental komputer di rumah, atau jasa rental game atau membuka jasa menulis skripsi bahkan anda juga bisa berbisnis online dengan komputer tadi dengan menambah perangkat modem.

Sebenarnya masih banyak cara untuk menemukan ide bisnis di rumah yang menguntungkan, misalnya saja anda memiliki garasi yang tidak terpakai, kebetulan anda seorang yang mencintai musik, nah garasi tadi bisa dirubah fungsinya menjadi sebuah studio musik, apalagi jika letak rumah anda dekat dengan sekolah SMP atau SMA, biasanya mereka akan lebih sering menyewa studio musik yang dekat dengan sekolah mereka.

Dalam berbisnis cuma ada petuah yang membuat anda bergerak melakukan apa yang dibutuhkan dalam membangun bisnis anda, yaitu segera bertindak dan bertindak, karena dengan tindakan maka impian anda untuk mewujudkan ide bisnis di rumah yang menguntungkan akan menjadi kenyataan.

Semoga bermanfaat.

Bagaimana Menjual Produk di Internet Dengan Cepat [bagian ketiga]

Oke, artikel kali ini masih seputar bagaimana menjual produk di internet dengan cepat, dan saya yakin anda pasti masih ingat dengan bahasan-bahasan sebelumnya, khan?. Menjual produk dengan cepat di internet sebenarnya bisa dengan menggunakan bermacam-macam cara, nah agar anda tidak bingung saya akan membuat postingan yang berkelanjutan agar anda tidak bingung dalam menjual produk anda sendiri, setuju?.

Cuma sedikit mereview apa yang telah saya posting sebelumnya tentang artikel seputar bagaimana menjual produk di internet dengan cepat, yang perlu anda perhatikan sebelum anda menjual produk anda di blog anda adalah pertama yaitu :

1. Perhatikan nama domain blog anda.
2. Cari backlink yang berkualitas.
3. Perhatikan SEO onpage dan offpage blog anda.

Dan bahasan sekarang adalah tentang teknik promosi produk anda, agar cepat menyebar luas dan dikenal di internet dengan cepat.

Kalau bicara tentang teknik promosi, sebenarnya mesin pencari adalah pegawai marketing kita yang gratis, yang bekerja selama 24 jam terus menerus tanpa henti, namun ada juga teknik lain yang bisa membantu selain mendatangkan calon konsumen dari search engine, yaitu iklan baris massal, baik yang gratis maupun premium.

Iklan baris adalah sebuah website yang menjual spot mereka bagi para pemilik produk yang menjual produk mereka. Ada juga yang memberikan spot mereka bagi anda yang ingin beriklan secara gratis.

Keuntungan yang diperoleh dari beriklan di iklan baris massal adalah mereka akan mendistribusikan alamat link blog anda atau website penjualan anda ke seluruh jaringan iklan baris yang mereka miliki atau terhubung dengan affiliasi mereka, sehingga produk anda akan cepat sekali menyebar di internet.

Dari sisi SEO, sebenarnya dengan menyebarkan lewat iklan baris, maka anda akan mendapat lebih banyak backlink dari web iklan baris tadi, jadi ada kemungkinan akan mendongkrak posisi blog anda pada search engine.

Pada point ke empat ini, penekanan pada penyebaran iklan baris massal akan lebih membuat produk anda cepat terjual, lebih-lebih jika anda memasang ikklan secara premium atau berbayar, kadang pemilik iklan baris akan lebih mengutamakan klien yang berbayar untuk dipromosikan ke seluruh jaringan website iklan baris mereka.

Semoga bermanfaat.

Sabtu, 25 Juni 2011

Konkurensi

Fitur-fitur utama dari sistem operasi modern yang paling menonjol adalah kemampuan sistem operasi untuk melakukan:
  1. Multiprogramming: kemampuan untuk memanajemen banyak proses dengan menggunakan satu prosesor,
  2. Multiprocessing: kemampuan untuk memanajemen banyak proses dengan menggunakan banyak prosesor,
  3. Distributed Processing  (pemrosesan tersebar): kemampuan untuk memanajemen banyak proses yang dieksekusi pada banyak komputer yang tersebar dibeberapa lokasi.
Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang berjalan bersama-sama (konkurensi) adalah masalah-masalah seperti: bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas proses-proses, dan alokasi prosesor.
Prinsip-prinsip Konkurensi
Pada komputer yang menjalankan multiprogramming proses-proses dijalankan bergantian dengan cepat oleh prosesor sehinga tampak seolah-olah berjalan bergantian. Ketika hal ini dilakukan timbul beberapa masalah, yaitu:
  1. Berbagi pakai sumber daya memiliki resiko tinggi. Contohnya ketika dua buah proses mengakses variabel yang sama dan melakukan operasi penulisan dan pembacaan maka urutan eksekusi pembacaan dan penulisan masing-masing proses menjadi hal yang perlu diperhatikan dan bersifat kritikal.
  2. Sulit bagi sistem operasi untuk memanajemen alokasi sumber daya komputer secara optimal. Contohnya jika sebuah proses mengakses suatu file atau I/O kemudian ditunda eksekusinya maka proses lain yang hendak mengakses file atau I/O tersebut akan ditolak hingga proses pertama selesai mengakses file atau I/O tersebut.
  3. Sulit untuk melacak kesalahan pada program. Hal ini dikarenakan hasil yang sama tidak determinisitik dan sulit diproduksi ulang.
Salah satu masalah yang ditimbulkan dari berbagi pakai sumber daya adalah race condition, yaitu situasi sedemikian sehingga beberapa proses atau thread menulis data di tempat/variabel yang sama sehingga hasil akhir bergantung kepada urutan eksekusi instruksi-instruksi proses-proses tersebut. Sebagai contoh: jika ada dua proses P1 dan P2, berbagai pakai variabel global a. Jika P1 mengubah nilai a menjadi 1 dan kemudian pada suatu ketika P2 mengubah nilai a menjadi 2 maka kedua proses sedang berada dalam kondisi balapan untuk menulis variabel a. Pada contoh ini pihak yang kalah balapan (yang terakhir mengubah nilai variabel a) adalah yang menentukan nilai akhir dari variabel a.
Untuk menangani masalah konkurensi ini sistem operasi perlu memperhatikan hal-hal sebagai berikut:
  1. Sistem operasi harus dapat mengetahui jejak dari berbagai proses yang berjalan, Hal ini dapat dilakukan melalui process control block.
  2. Sistem operasi harus dapat mengalokasi dan mendealokasi sumber daya komputer untuk setiap proses yang aktif, seperti Prosesor, Memori, Berkas-berkas, Peralatan-peralatan I / O
  3. Sistem operasi harus dapat melindungi data dan sumber daya fisik yang sedang dialokasikan untuk setiap proses dari interferensi yang tidak dimaksudkan oleh proses lain.
  4. Fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain. Bab ini akan difokuskan pada poin ke-empat ini.
Apa maksud dari pernyataan fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain? Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap bergantung proses-proses lainnya.

Proses-proses dalam sistem multiproses dapat saling independen tetapi lebih sering melakukan interaksi. Ada beberapa jenis interaksi yang terjadi antar proses berdasarkan derajat pengetahuan proses-proses terhadap adanya proses lainnya:
  1. Proses-proses tidak saling mengetahui keberadaan proses lain.
  2. Proses-proses tersebut dimaksudkan untuk bekerja independen dan tidak dimaksudkan untuk saling bekerja sama. Pada kasus ini meski tidak bekerja sama tetapi sangat mungkin terjadi kompetisi untuk mendapatkan sumber daya kompuer tertentu.
  3. Proses-proses saling mengetahui keberadaan proses lain secara tidak langsung.
  4. Proses-proses ini tidak mengetahui secara langsung proses lain melalui process ID yang mereka miliki melainkan karena berbagi pakai suatu sumber daya yang sama dan mengetahui bahwa sumber daya tersebut dibagi pakai bersama dengan proses lainnya.
  5. Proses-proses saling mengetahui keberadaan proses lain secara langsung.
Proses-proses ini saling mengetahui keberadaan proses lain sampai pada tingkat mengetahui process ID proses lainnya.
Pada jenis interaksi pertama proses-proses yang berjalan berbarengan mengalami konflik ketika mencoba mengakses sumber daya yang sama pada waktu yang bersamaan. Jika salah satu proses telah mengakses sumber daya tersebut maka proses lain harus menunggu hingga proses tersebut selesai menggunakan sumber daya tersebut sebelum dapat menggunakannya. Hal ini menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa kasus proses lain tidak pernah mendapat kesempatan untuk mengakses sumber daya tersebut dan akhirnya tidak pernah selesai dengan sukses.
Untuk mengendalikan proses-proses yang saling berkompetisi setidaknya ada tiga masalah yang dihadapi, yaitu:
  1. Mutual exclusion
  2. Deadlock
  3. Starvation
Mutual exclusion adalah konsep sedemikian sehingga hanya satu proses yang boleh mengakses/menggunakan sebuah sumber daya yang tidak bisa dipakai berbarengan (contohnya: printer, kartu jaringan, dll). Instruksi-instruksi yang dieksekusi ketika mengakses sebuah sumber daya disebut sebagai critical section dan sumber daya tersebut dikenal sebagai critical resource. Mutual excluision mengharuskan pada suatu saat hanya ada satu proses yang berada pada kondisi critical section.
Penerapan mutual exclusion dapat menyebabkan dua masalah, yaitu deadlock dan starvation. Deadlock adalah kondisi sedemikian sehingga beberapa proses tidak berjalan karena masing-masing sedang mengakses suatu sumber daya dan untuk menyelesaikan eksekusi critical section masing-masing harus mengakses critical resource yang sedang diakses proses lainnya. Misalkan proses P1 dan P2 membutuhkan sumberdaya R1 dan R2 untuk menyelesaikan critical section masing-masing. Seandainya P1 sedang mengakses R1 dan P2 sedang mengakses R2 maka P1 tidak dapat mengakses R2 dan sebaliknya P2 juga tidak dapat mengakses R1. Saat inilah kedua proses tidak dapat melanjutkan proses eksekusi dan deadlock terjadi.
Starvation (kelaparan) adalah kondisi sedemikan sehingga sebuah proses terus menerus gagal mendapatkan akses suatu sumber daya dikarenakan proses-proses lain terus menggunakan sumber daya tersebut

Persayaratan untuk mutual exclusion
Untuk menerapkan mutual exclusion sebuah sistem harus memenuhi kebutuhan-kebutuhan sebagai berikut:
  1. Mutual exclusion harus dapat dipaksakan
  2. Proses yang berhenti sementara pada bagian non critical harus dapat berhenti tanpa mengganggu proses yang lain
  3. Tidak boleh terjadi sebuah proses tertahan dari memasuki critical section dalam waktu yang tidak pasti: tidak boleh ada deadlock dan starvation
  4. Ketika tidak ada proses yang memasuki critical section pada suatu critical resource maka proses lain yang hendak memasuki cirtical sectionnya harus diizinkan mengakses critical resource tersebut tanpa waktu tunda
  5. Tidak asumsi yang dibuat mengenai kecepatan proses dan jumlah prosesor
Sebuah proses berada dalam critical section untuk waktu yang terbatas.
Dukungan Perangkat Keras untuk Mewujudkan Mutual Exclusion
Interrupt Disabling
Apabila sebuah proses yang memasuki critical section dapat diinterupsi eksekusinya maka mutual exclusion menjadi tidak terjamin penerapannya. Kemampuan untuk mencegah suatu proses diinterupsi di tengah critical section proses tersebut dapat diwujudkan dalam bentuk rutin-rutin dasar/primitif yang disediakan di dalam kernal yang berguna untuk mematikan dan menyalakan kembali fasilitas interupsi. Sebuah proses dapat memaksakan mutual exclusion dengan cara seperti di bawah ini:
while (true)
{
  /* matikan interupsi */;
  /* masuk ke critical section */;
  /* nyalakan interupsi */;
  /* masuk ke non-critical section */;   
}

Sebelum proses memasuki critical section proses memanggil rutin primitif untuk mematikan fasilitas interupsi dan proses memanggil rutin untuk mengembalikan fungsi interupsi. Dikarenakan critical section tidak dapat diinterupsi maka mutual exclusion menjadi terjamin penerapannya. Cara ini memiliki biaya yang mahal dikarenakan akan membatasi fleksibilitas prosesor dalam mengubah proses yang dieksekusi. Selain itu solusi ini tidak bekerja pada lingkungan multiprosesor di mana beberapa proses dapat dijalankan bersamaan masing-masing dengan prosesor yang berbeda.   
Instruksi-instruksi Mesin Khusus
Interrupt disabling tidak dapat digunakan pada mesin dengan banyak prosesor dikarenakan tidak ada mekanisme untuk melakukan interupsi antar prosesor. Pada lingkungan seperti ini yang mengkaitkan prosesor satu dan lainnya adalah mereka sama-sama mengakses satu main memory yang sama dan pada tingkatan perangkat keras akses ke lokasi tertentu main memory berarti menghalangi prosesor lain mengakses lokasi yang sama. Dengan menggunakan kondisi ini para disainer prosesor mencoba untuk mengaplikasikan mutual exclusion melalui instruksi mesin yang dalam satu putaran melakukan dua pekerjaan yang bersifat atomik seperti reading dan writing, atau reading dan testing. Dua bentuk instruksi yang diimplementasi antara lain:
1.    Instruksi test and set
2.    Instruksi exchange

Instruksi Test and Set
Instruksi test and set dapat didefinisikan seperti di bawah ini:
boolean testset (int i)
{
    if(i==0)
    {
        i=1;
        return true;
    }
    else
    {
        return false;
    }
}

Instruksi ini memeriksa apakah parameter i bernilai. Jika i bernilai 0 maka instruksi ini akan mengganti nilainya menjadi 1 dan mengembalikan nilai boolean true. Sebaliknya jika bernilai 1 maka instruksi ini akan mengembalikan nilai false.
Tabel di bawah memperlihatkan bagaimana mutual exclusion dapat diimplementasi melalui mekanisme instruksi ini. Prosedur parBegin(P1,P2, …, Pn) sendiri bekerja dengan cara sebagai berikut: tahan (suspend) ekseskusi dari program utama (main program) kemudian siapkan/inisiasi eksekusi secara konkuren prosedur P1, P2, …, Pn. Jika prosedur-prosedur tersebut telah selesai lanjutkan kembali program utama. Sebuah variabel yang dibagi pakai bernama bolt diinisialisasi bernilai 0. Proses yang dapat memasuki critical section hanyalah proses yang mendapati bahwa nilai bolt adalah 0. Proses lainnya akan tertahan dari memasuki critical section dan mengalami bussy waiting atau spin waiting. Bussy waiting adalah suatu teknik sedemikian sehingga proses tidak dapat memasuki critical section dan terus-menerus memeriksa kondisi tertentu yang membolehkan proses tersebut memasuki critical section. Setelah proses keluar dari critical section proses tersebut akan mengubah nilai bolt kembali menjadi 0.

/*program:mutualexclusion*/
const int n=/*jumlah proses*/
int bolt;
void P(int i)
{
   while(true)
   {
     while(!testset(bolt))
        /*diam*/
     /*critical section*/
     /*lain-lain*/
   }
}
void main()
{
   bolt=0;
   parBegin(P(1),P(2), …, P(n));
}
/*program:mutualexclusion*/
const int n=/*jumlah proses*/
int bolt;
void P(int i)
{
  int keyi=1;
  while(true)
  {
     do exchange (keyi, bolt);
     while(key!=0)
     /*critical section*/
     exchange(keyi, bolt);
     /*lain-lain*/
  }
}
void main()
{
  bolt=0;
  parBegin(P(1),P(2), …, P(n));
}
Instruksi Test and Set
Instruksi Exchange

Instruksi Exchange
Instruksi exchange dapat didefinisikan seperti di bawah ini:
void exchange (int register, int memory)
{
    int temp;
    temp=memory;
    memory=register;
    register=temp;
}
Instruksi ini menukar nilai dalam sebuah register (lokasi memori dalam prosesor) dengan nilai dalam sebuah lokasi memori. Tabel 4-1 memperlihatkan bagaimana mutual exclusion dapat diimplementasi dengan instruksi ini. Prosedur parBegin dan variabel bolt pada instruksi ini memiliki fungsi yang sama dengan pasangannya di instruksi set and test sedangkan variabel baru keyi ditetapkan di awal bernilai 1. Proses boleh memasuki critical section hanya jika mendapati nilai bolt adalah 0 dengan cara menukar nilai keyi dengan bolt dan memeriksa apakah nilai keyi adalah 1. Setelah proses meninggalkan critical section proses akan menukarkan kembali nilai bolt menjadi 0.
Sifat-sifat Pendekatan Instruksi Mesin
Keuntungannya:
  1. Dapat digunakan pada lingkungan satu (uni) atau banyak (multi) prosesor yang berbagi pakai main memory
  2. Sederhana dan mudah dipastikan
  3. Dapat mendukung beberapa critical section dengan menggunakan variabel tersendiri untuk setiap critical section
Kerugiannya:
1.    Terdapat busy waiting yang menghabiskan waktu prosesor
2.    Memungkinkan terjadinya starvation.
3.    Memungkinkan terjadinya deadlock
Fasilitas Perangkat Lunak untuk Mewujudkan Mutual Exclusion
Melihat kekurangan dari pendekatan instruksi mesin pendekatan alternatif dirasa perlu. Sistem operasi dan bahasa pemrograman dapat menyediakan mekanisme untuk mewujudkan mutual exclusion. Beberapa di antaranya adalah:
1.    Semaphore,
2.    Monitor, dan
3.    Message passing
Semaphore
William Stalling dalam bukunya, Operating Systems Internal Design and Principles, menyebutkan kemajuan besar yang pertama dalam menangani masalah-maslah yang timbul akibat proses-proses yang konkuren terjadi di tahun 1965 oleh Dijkstra. Dijkstra menekankan pada disain dari sistem operasi sebagai sekumpulan proses berurutan yang saling bekeja sama dan dengan pengembangan dari mekanisme-mekanisme kerja sama yang efisien dan dapat diandalkan. Mekanisme-mekanisme tersebut dapat digunakan oleh proses dari user jika prosesor dan sistem operasi dapat menyediakan mereka untuk digunakan.
Prinsip dasarnya adalah: bawhwa dua atau lebih proses dapat bekerja sama dengan menggunakan sinyal-sinyal sederhana, sedemikian sehingga sebuah proses dapat dipaksa berhenti pada tahap tertentu hingga menerima sinyal tertentu. Kebutuhan untuk koordinasi kompleks apapun dapat dipenuhi dengan struktur sinyal-sinyal yang tepat. Untuk mengirimkan sinyal dibutuhkan variabel-variabel spesial yang disebut sebagai semaphore. Untuk mengirim sinyal melalui semaphore s sebuah proses memanggil rutin primitif semSignal(s) dan untuk menerima sinyal melalui semaphore s, sebuah proses memanggil rutin primitif semWait(s). Jika ternyata setelah memanggil semWait(s) sinyal yang ditunggu tidak tersedia maka proses tersebut akan ditahan hingga sinyal yang ditunggu dikirimkan.
Semaphore dapat dilihat sebagai sebuah variabel bertipe integer yang kepadanya dapat dilakukan tiga operasi, yaitu:
  1. Sebuah semaphore dapat diinisialisasikan sehingga bernilai bilangan non negatif.
  2. Operasi semWait akan mengurangi nilai semaphore. Jika nilainya telah negatif maka proses yang memanggil semWait tersebut akan di blok. Sebaliknya jika nilainya masih positif proses dapat dilanjutkan.
  3. Operasi semSignal menaikkan nilai semaphore. Jika nilanya kurang atau sama dengan nol maka proses yang diblok oleh operasi semWait akan dilepaskan dari status diblok.
Selain ketiga operasi di atas tidak boleh ada lagi cara untuk memeriksa dan mengubah nilai semaphore.
Bentuk dari semphore yang lebih ketat adalah binary semaphore atau mutex yang hanya mengizinkan nilai 0 dan 1 bagi semaphore. Operasi-operasinya adlah sebagai berikut:
  1. Binary semaphore dapat diinisialisasikan dengan nilai 0 atau 1.
  2. Operasi semWaitB memeriksa nilai semaphore. Jika nilainya satu maka nilainya diubah menjadi nol dan proses melanjutkan eksekusi.
  3. Operasi semSignalB memeriksa apakah ada proses yang diblok pada semaphore ini. Juka ada maka proses yang telah diblok oleh operasi semWaitB akan dilepaskan dari status diblok dan nilai dari semaphore diubah menjadi satu.
Bentuk semaphore yang pertama sering pula disebut sebagai counting semaphore atau general semaphore.
Kebijakan yang digunakan untuk mengeluarkan proses dari antrian proses yang diblok pada semaphore dapat bermacam-macam bentuknya. Bentuk yang paling adil adalah First In First Out (FIFO). Proses yang paling lama diblok adalah yang keluar paling awal. Semaphore yang mendefinisikan kebijakan melepas proses dari antrian dikenal sebagai strong semaphore sedangkan yang tidak mendefinisikannya disebut sebagai weak semaphore. 
Contoh dari mekanisme semaphore dapat dilihat pada gambar 4-1 dengan kondisi awal terdapat proses A, B, C, dan D dengan keterhubungan sedemikan sehingga proses A, B, dan C bergantung pada hasil yang dikeluarkan proses D. Urutan kejadian pada gambar dapat dijelaskan sebagai berikut:
  1. Awalnya A sedang berjalan; B, C, dan D dalam kondisi ready. Semaphore bernilai 1 menandakan salah satu hasil yang dikeluarkan proses D telah tersedia. Ketika A memanggil instruksi semWait pada semaphore s nilai s akan dikurangi menjadi 0 dan A dapat melanjutkan ke langkah selanjutnya dan kemudain bergabung pada antrian ready.
  2. B kemudian dieksekusi dan memanggil instruksi semWait. Dikarenakan nilai semaphore s menjadi -1 maka proses B akan diblok dan memasuki antrian blocked.
  3. Ketika proses D dieksekusi dan mengeluarkan hasil yang baru instruksi semSignal dipanggil oleh proses D  yang memungkinkan proses B yang diblok untuk masuk ke kondisi ready di antrian ready.
  4. Proses D yang telah selesai langsung bergabung pada antrian ready dan proses C dieksekusi.
  5. Proses C yang memanggil instruksi semWait kemudian diblok dan masuk ke antrian blocked dan nilai semaphore menjadi -1 (tidak tampak di gambar).
  6. Selanjutnya proses A dan B juga mengalami hal yang sama dengan proses C. Pada tahap ini akhirnya nilai semaphore menjadi -3.
  7. Proses D kembali dijalankan, mengeluarkan hasil baru dan memanggil instruksi semSignal sehingga nilai semaphore menjadi -2 dan proses C keluar dari antrian blocked masuk ke antrian ready. Ketika dieksekusi proses C akan mendapatkan hasil yang dikeluarkan oleh proses D. Pada putaran berikutanya proses D akan melepaskan proses A dan B dari antrian blocked dan masing-masing akan mendapatkan hasil dari proses D seperti halnya proses C.
Strong semaphore menjamin terbebas dari starvation sedangkan weak semaphore tidak. Pada umumnya sistem operasi menyediakan fasilitas untuk strong semaphore.
Contoh dari mekanisme semaphore

Monitor diajukan sebagai solusi dari masalah yang dimiliki semaphore. Monitor sendiri adalah sebuah modul program yang memiliki satu atau beberapa prosedur, urutan inisialisasi, dan data lokal. Monitor memiliki karakteristik sebagai berikut:
  1. Data lokal hanya bisa diakses oleh prosedur yang ada di dalam monitor.
  2. Sebuah proses memasuki monitor dengan memanggil salah satu prosedur di dalam monitor tersebut.
  3. Pada satu saat hanya ada satu proses yang bisa menggunakan prosedur di dalam monitor. Proses lain yang hendak mengakses pada waktu yang bersamaan harus menunggu proses pertama selesai.
Untuk melindungi struktur data yang dibagi pakai bersama data tersebut dapat diletakkan di dalam monitor.
Untuk dapat digunakan dalam lingkungan yang konkuren monitor harus menyediakan fasilitas sinkronisasi bagi proses-proses yang menggunakannya. Sebagai contoh jika ada sebuah proses yang memanggil prosedur dalam monitor  dan ketika berada di dalamnya harus diblok untuk menunggu suatu kejadian atau kondisi tertentu terpenuhi maka diperlukan sebuah fasilitas yang memungkinkan proses tersebut tidak hanya diblok tetapi juga melepas akses terhadap monitor sehinga proses lain dapat menggunakan monitor tersebut. Setelah kondisi terpenuhi dan monitor kembali tersedia proses tadi dapat kembali berjalan pada posisi sebelum ia diblok.
Monitor sendiri memiliki beberapa alternative implementasi seperti:
1.    Monitor dengan signal
2.    Monitor dengan notify dan broadcast
Message Passing
Message passing adalah sebuah teknik untuk melakukan sinkronisasi dan komunikasi antara proses-proses yang salin berinteraksi. Message passing dapat diimplementasikan dengan beberapa cara namun yang dibahas kali ini adalah dengan menggunakan sepasang prosedur primitive yaitu:
1.    Send (tujuan, pesan)
2.    Receive(sumber, pesan)
Sebuah proses mengirim informasi kepada proses lain melalui pemanggilan prosedur send sedangkan proses menerima informasi melalui pemanggilan prosedur receive.
Ada beberapa persoalan yang berkenaan dengan disain teknik message passing ini, antara lain:
  1. Sinkronisasi: proses tidak dapat menerima pesan sebelum pesan tersebut dikirimkan oleh proses lain.
  2. Pengalamatan: menentukan cara mengalamati sebuah proses, yaitu melalui direct addressing dan indirect addressing.
  3. Format pesan: menentukan bagaimana pesan dibentuk dan informasi apa saja yang terdapat di dalam pesan termasuk pesan-pesan pada sistem tersebar
  4. Aturan antrian: menentukan bagaimana antrian pesan yang datang maupun dikirim diproses oleh proses tujuan atau sumber.
Sinkronisasi
Ketika suatu proses mengirimkan pesan dengan memanggil prosedur send ada dua kemungkinan yang dapat terjadi:
1.    Proses pengirim diblok hingga pesan diterima, atau
2.    Proses boleh melanjutkan eksekusi
Hal yang sama juga terjadi pada proses menerima pesandengan memanggil prosedur receive. Proses dapat diblok menunggu adanya pesan yang datang atau proses melanjutkan eksekusinya sekalipun pesan belum datang.
Berdasarkan empat kondisi yang telah disebutkan dapat dibuat tiga kombinasi kondisi yang umum digunakan pada sebuah sistem yaitu:
1.    Blocking send, blocking receive
2.    Nonblocking send, blocking receive
3.    Nonblocking send, nonblocking receive
Proses dengan nonblocking send memiliki kelebihan proses dapat terus berlanjut tanpa menunggu adanya konfirmasi bahwa pesan telah diterima namun di sisi lain jika proses mengalami kesalahan dan terus menerus mengirimkan pesan maka sumber daya komputer dapat terkuras oleh proses tersebut. Selain itu pemrogram aplikasi juga harus membuat sendiri mekanisme untuk menentukan apakah pesan sudah diterima atau belum.
Pada prosedur primitive receive versi blocking proses yang meminta pesan akan menunggu hingga pesan yang dimaksud diterima. Saat pesan tidak juga diterima proses dapat menunggu terus tanpa kepastian. Non blocking receive menyelesaikan masalah ini namun sisi buruknya adalah pesan dapat hilang ketika prosedur receive dipanggil sebelum pesan sampai.
Pengalamatan (Addressing)
Pada direct addressing prosedur send memerlukan penanda/identitas dari proses yang menjadi tujuan pesan sedangkan prosedur receive akan menangani dua kemungkinan:
  1. Prosedur receive memerlukan identitas proses yang akan mengirimkan pesan. Konsekuensinya proses yang memanggil receive perlu mengetahui identitas dari proses yang akan mengirimkan pesan. Cara ini efektif untuk mengendalikan dua proses konkuren yang saling bekerja sama.
  2. Proses yang menerima pesan tidak dapat menentukan proses mana yang menjadi sumber pesan. Contohnya pada proses yang menangani printer. Proses tersebut menerima pesan dari proses-proses lain yang memerlukan layanan printer. Pada kasus seperti ini lebih tepat jika menggunakan indirect addressing.
Pada metode indirect addressing pesan tidak langsung dikirimkan kepada proses tujuan melainkan disimpan terlebih dahulu pada penyimpanan sementara (mailbox). Cara ini dipandang lebih baik karena ketergantungan antar proses menjadi lebih rendah dan komunikasi dapat menjadi lebih fleksibel.
Terdapat empat jenis komunikasi dengan metode indirect ini bergantung kepada banyaknya proses pengirim dan penerima, yaitu:
1.    Satu pengiri ke satu penerima
2.    Banyak pengirim ke satu penerima
3.    Satu pengirim ke banyak penerima
4.    Banyak pengirim ke banyak penerima
Yang menjadi persoalan adalah kepemilikan mailbox tempat menyimpan pesan. Mailbox bisa dimiliki oleh proses penerima pesan dan ketika proses mati begitu juga mailbox akan dihapus. Cara lain adlah sistem operasi menyediakan layanan mailbox dan mailbox dapat dipesan oleh proses tertentu. Pada cara ke-dua mailbox dapat dipandang dimiliki oleh proses yang memintanya dan akan dihilangkan ketika proses tersebut selesai atau tetap dimiliki oleh sistem operasi penghapusan nantinya dilakukan oleh sistem operasi.
Format Pesan
Format pesan amat bergantung pada fasilitas pertukaran pesan dan jumlah komputer yang terlibat dalam pertukaran pesan. Pesan dapat memiliki panjang tetap untuk memperkecil overhead (pemrosesan tambahan seperti: menelusuri pesan untuk mencari ujung dari sebuah pesan) atau jika berukuran besar dapat disimpan dalam sebuah file. Pendekatan yang lebih fleksibel adalah menggunakan pesan yang panjangnya tidak tetap.
Pesan dapat dibagi menjadi bagian kepala (header) yang berisi informasi tentang pesan dan badan (body) tempat menampung isi pesan sebenarnya.
Aturan Antrian
Aturan antrian yang paling sederhana adalah FIFO (first in first out) tetapi mungkin tidak cukup jika terdapat beberapa pesan yang penting dan perlu untuk segera disampaikan dibandingkan pesan-pesan lainnya. Alternatifnya ialah dengan menyediakan fasilitas prioritas pada pesan atau membolehkan penerima pesan memeriksa antrian untuk mengambil pesan.