Rabu, 10 Mei 2017

Cara Merefresh Address pada File Download di IDM

Teman-teman pembaca di sini pasti sudah tidak asing lagi dengan IDM. Yap, Internet Download Manager yang membuat proses download menjadi lebih cepat daripada download menggunakan browser. Namun pasti kita pernah mengalami download error karena, menurut IDM, alamat dari file yang kita download sudah kadaluarsa ataupun tidak valid. Apalagi file yang kita download berukuran sampai bergiga-giga, sedih pasti rasanya jika harus mengulang download dari awal lagi.
Nah, sekarang saya akan membagikan cara meresume file download yang error di IDM. Langsung saja simak tutorialnya.
1. Jika file yang kita download mengalami gagal resume, pasti akan muncul tampilan seperti di bawah ini. Klik saja OK.
2. Secara otomatis IDM akan membuka browser, menuju laman dimana kita mendownload file yang gagal diresume tersebut. Lalu akan muncul kotak dialog IDM yang menyatakan bahwa IDM sedang menunggu untuk mendapatkan address yang baru. Jika IDM sudah mendapatkan address yang baru, secara otomatis pula file yang kita download akan teresume.
3. Namun apabila sudah menunggu sangat lama dan tidak juga ada kabar dari IDM, klik saja stop waiting. Lalu download file seperti biasa. Hanya saja, saat muncul seperti tampilan di bawah ini, jangan klik download dulu. Perhatikan file yang akan didownload ini ukurannya harus sama dengan file yang gagal diresume.
Juga perhatikan apabila sebelumnya mendownload di Mirror 1, kali ini harus di Mirror 1 juga. Apabila sebelumnya mendownload melalu server 1, kali ini jangan mendownload melalui server 2. Setelah yakin bahwa semuanya sama, maka copy semua tulisan yang ada di kolom URL, seperti dibawah ini. Setelah di-copy, klik cancel.
4. Lalu buka IDM, klik propesties  pada file yang gagal diresume, maka akan muncul tampilan seperti yang ada di bawah ini. Hapus semua tulisan yang ada di kolom Address, lalu pastekan URL yang tadi sudah di-copy. Setelah itu klik OK.
5. Lalu cobalah resume kembali file download yang tadi gagal diresume.

Itulah cara merefresh address pada file download yang gagal diresume di IDM. Semoga postingan saya ini bisa bermanfaat bagi teman-teman sekalian.

Rabu, 03 Mei 2017

Classic Problem Synchronization (Masalah Klasik dalam Sinkronisasi)


Dalam menjalankan fungsinya sebagai sistem operasi, dibutuhkan interaksi antara beberapa proses yang berbeda. Interaksi tersebut bertujuan agar terjadi kesinambungan antar proses yang terjadi sehingga sistem operasi dapat berjalan sebagaimana mestinya. Interaksi tersebut dapat melalui sistem berbagi memori atau dengan cara saling berkirim pesan. Terkadang, beberapa pesan yang dikirim tidak dapat diterima seluruhnya oleh penerima dan menyebabkan informasi yang lain menjadi tidak valid, maka dibutuhkanlah sebuah mekanisme sinkronasi yang akan mengatur penerimaan dan pengiriman pesan sehingga kesalahan penerimaan pesan dapat diperkecil. Pesan yang dikirim dapat ditampung dalam penyangga sebelum diterima oleh penerima.
Terdapat 3 masalah klasik pada sinkronisasi, yaitu :
1.      Bounded Buffer problem
2.      Reader-writer problem
3.      Dining Philosopher
Untuk mengimplementasikan permasalahan sinkronisasi dapat menggunakan model yang digunakan untuk menyelesaikan ketiga permasalahan tersebut, yang akan dijelaskan di bawah ini.

Bounded Buffer Problem
Pengertian bounded buffer sendiri adalah suatu struktur data yang mampu menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan. Jika dianalogikan, bounded buffer ini akan mirip dengan sebuah tumpukan piring. Kita meletakkan beberapa piring menjadi sebuah tumpukan, ketika ingin mengambil kembali piring yang telah diletakkan tadi, maka tumpukan yang paling atas yang akan terambil terlebih dahulu. Jadi piring terakhir yang akan diambil adalah piring yang diletakkan pertama kali. Mirip sekali seperti Last In-First Out.
Bounded buffer problem merupakan salah satu masalah yang menerangkan sinkronisasi antara proses-proses yang berjalan secara konkuren untuk mengakses data yang sama. Dalam komputasi, masalah produsen-konsumen (juga dikenal sebagai masalah dibatasi-buffer) adalah contoh klasik dari masalah sinkronisasi multi-proses.
Masalah ini menjelaskan dua proses, produsen dan konsumen, yang berbagi umum, tetap ukuran buffer digunakan sebagai antrian. Tugas produser adalah untuk menghasilkan data, memasukkannya ke dalam buffer, dan mulai lagi. Pada saat yang bersamaan, konsumen mengkonsumsi data (yaitu mengeluarkannya dari buffer), satu bagian pada suatu waktu. Yang menjadi pokok pembahasan utama dalam masalah bounded buffer adalah bagaimana jika ada dua proses berbeda yang berusaha mengakses buffer tersebut. Salah satu proses akan memberi nilai pada buffer dan mengisi buffer. Proses yang lain akan membaca nilai dan mengosongkan buffer tersebut. Proses yang pertama biasa disebut producer sedangkan yang kedua disebut consumer. Produsen menghasilkan barang dan konsumen yang akan menggunakannya.
Jadi dapat disimpulkan bahwa pokok permasalahan bounded buffer adalah bagaimana mengatur sinkronisasi dari beberapa proses yang secara konkuren ingin mengakses buffer (mengisi dan mengosongkan buffer). Pengaturan itu dilakukan dengan menerapkan konsep semaphore yang menjamin hanya ada satu proses dalam suatu waktu yang boleh mengakses buffer sehingga tidak terjadi race condition.

Reader-Writer Problem
Masalah Readers/Writers adalah salah satu masalah sinkronisasi klasik yang sering digunakan untuk mendiskusikan dan membandingkan berbagai cara untuk menyelesaikan masalah sinkronisasi. Secara singkat, masalah ini terjadi ketika ada beberapa pembaca dan penulis ingin mengakses suatu berkas pada saat bersamaan.
Jika reader sedang mengakses data, reader-reader yang lain boleh ikut mengakses data, tapi writer harus menunggu sampai data tidak diakses oleh siapapun. Jika writer sedang mengakses data, tidak boleh ada thread lain yang mengakses data.
Salah satu contoh konkret dari permasalahan ini adalah masalah pemesanan tiket pesawat terbang. Ketika seseorang memesan tiket pesawat, dia pertama-tama harus mengecek apakah masih ada tempat yang tersisa. Apabila prosedur pemesanan tiket tersebut tidak ditangani secara hati-hati, bisa terjadi masalah ketika dia memesan tiket. Misalkan, sebelum proses pemesanan tiket selesai, ada orang lain yang memesan tiket yang sama dan lebih cepat menyelesaikan proses pemesanan tiket. Dengan demikian, tiket yang seharusnya menjadi miliknya tanpa perlu usaha berlebih, sekarang harus dia perebutkan dengan orang lain yang kebetulan mendaftar pada saat yang bersamaan. 

Dining Philosopers Problem
Dining Philosophers Problem merupakan salah satu masalah klasik dalam sinkronisasi. Dining Philosohers Problem dapat diilustrasikan sebagai berikut, terdapat lima orang filsuf yang sedang duduk mengelilingi sebuah meja makan. Terdapat lima mangkuk mie di depan masing-masing filsuf dan satu sumpit di antara masing-masing filsuf. Para filsuf menghabiskan waktu dengan berpikir (ketika kenyang) dan makan (ketika lapar). Ketika lapar, filsuf akan mengambil dua buah sumpit (di tangan kiri dan tangan kanan) dan makan. Namun adakalanya, hanya diambil satu sumpit saja. Jika ada filsuf yang mengambil dua buah sumpit, maka dua filsuf di samping filsuf yang sedang makan harus menunggu sampai sumpit ditaruh kembali. Hal ini dapat diimplementasikan dengan wait dan signal.
Tujuan dari masalah ini adalah untuk mencari cara sehingga para filusuf tidak akan pernah mati kelaparan. Hal ini juga merupakan salah satu representasi dari pengalokasian source komputer yang terbatas dengan beberapa proses sehingga dapat mengakibatkan deadlock dan starvation.
Salah satu solusi yang mungkin langsung terlihat adalah dengan menggunakan semafor. Setiap sumpit mewakili sebuah semafor. Kemudian, ketika seorang filusuf lapar, maka dia akan mencoba mengambil sumpit di kiri dan di kanannya, atau dengan kata lain dia akan menunggu sampai kedua sumpit tersebut dapat ia gunakan. Setelah selesai makan, sumpit diletakkan kembali dan sinyal diberikan kepada semafor sehingga filusuf lain yang membutuhkan dapat menggunakan sumpitnya.
 
Itulah beberapa masalah yang dapat terjadi dalam proses sinkronisasi sebuah sistem operasi.