Jumat, 22 Oktober 2010

Deadlock dan Starvation


DEADLOCK
Deadlock dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau tidak ada komunikasi lagi antar proses. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain, proses lain itu pun sedang menunggu sumber daya yang dipegang olehnya. Dengan kata lain setiap proses dalam set menunggu untuk sumber yang hanya dapat dikerjakan oleh proses lain dalam set sedang menunggu. Contoh sederhananya ialah pada gambar berikut ini.
Gambar terjadinya deadlock pada jembatan penyeberangan.
Secara umum terdapat 4 cara untuk menangani keadaan deadlock, yaitu:
Ø Pengabaian. Maksud dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock dan pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan cara ini dikenal istilah ostrich algorithm. Pelaksanaan algoritma ini adalah sistem tidak mendeteksi adanya deadlock dan secara otomatis mematikan proses atau program yang mengalami deadlock. Kebanyakan sistem operasi yang ada mengadaptasi cara ini untuk menangani keadaan deadlock. Cara penanganan dengan mengabaikan deadlock banyak dipilih karena kasus deadlock tersebut jarang terjadi dan relatif rumit dan kompleks untuk diselesaikan. Sehingga biasanya hanya diabaikan oleh sistem untuk kemudian diselesaikan masalahnya oleh user dengan cara melakukan terminasi dengan Ctrl+Alt+Del atau melakukan restart terhadap komputer.
Ø Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah satu karakteristik deadlock. Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem. Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.
Ø Penghindaran. Menghindari keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca adalah bahwa antara pencegahan dan penghindaran adalah dua hal yang berbeda. Pencegahan lebih kepada mencegah salah satu dari empat karakteristik deadlock terjadi, sehingga deadlock pun tidak terjadi. Sedangkan penghindaran adalah memprediksi apakah tindakan yang diambil sistem, dalam kaitannya dengan permintaan proses akan sumber daya, dapat mengakibatkan terjadi deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.
Ø Pendeteksian dan Pemulihan. Pada sistem yang sedang berada pada kondisi deadlock, tindakan yang harus diambil adalah tindakan yang bersifat represif. Tindakan tersebut adalah dengan mendeteksi adanya deadlock, kemudian memulihkan kembali sistem. Proses pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau tidak serta proses mana yang mengalami deadlock. Akan dibahas secara lebih mendalam pada bagian selanjutnya.


STARVATION
Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan). Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di dunia nyata dapat dilihat di bawah ini.Pada gambar diatas, pada antrian kanan terjadi starvation karena resource (jembatan) selalu dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran.
Starvation
Gambar ilustrasi starvation.

Permasalahan Critical Section
Mutual Exclusion
Terdapat sumber daya yang tak dapat dipakai bersama pada saat bersamaa, seperti printer. Sumber daya seperti ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/section. Hanya satu program pada saat yang diijinkan masuk critical region. Pemrogram tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini karena maksud program tidak dapat diketahui.
Sistem operasi hanya menyediakan layanan (berupa system call) untuk mencegah proses masuk critical section yang sedang dimasuki proses lain. Pemrogram harus menspesifikasikan bagian-bagian critical region sehingga sistem operasi akan menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk critical region yang sedang dipakai proses lain. inilah yang dimaksud dengan mutual exclusion.
Analogi Mutual Exclusion adalah tidak ada dua proses yang berada di critical section
pada saat yang bersamaan.
Pemaksaan adanya mutual exclusion menimbulkan dua masalah, yaitu:
-deadlock
- startvation.

Progress
Apabila tidak ada proses yang menjalankan critical section-nya dan terdapat beberapa proses yang akan memasuki critical section-nya, maka hanya proses-proses itu yang tidak diproses di dalam daerah pengingat (remainder) dapat ikut berpartisipasi di dalam keputusan proses mana yang akan memasuki critical section selanjutnya, dan pemilihan ini tidak dapat ditunda tiba-tiba.
Analogi Progress adalah Jika tidak ada proses yang sedang berada di critical section, maka proses lain yang ingin menjalankan critical section dapat masuk ke dalam critical section tersebut.

Bounded Waiting
Terdapat batasan jumlah waktu yang diijinkan oleh proses lain untuk memasuki critical section setelah sebuah proses membuat permintaan untuk memasuki critical section-nya dan sebelum permintaan dikabulkan.
Batasan – batasan itu.
  1. Menjamin proses dapat mengakses ke “critical section” (tidak mengalami starvation: proses se-olah berhenti menunggu request akses ke critical section diperbolehkan).
  2.  Tidak ada asumsi mengenai kecepatan eksekusi  proses proses n tersebut.
  3. Tidak ada proses yang menunggu selama-lamanya untuk masuk ke dalam critical
  4.  Tidak ada asumsi lain mengenai kecepatan relatif setiap proses ataupun jumlah CPU.











Contoh Proposal Skripsi



SISTEM PENDETEKSI WAJAH MANUSIA
PADA CITRA DIGITAL

(PROPOSAL SKRIPSI)







                                       




diajukan oleh

NamaMhs

NIM: XX.YY.ZZZ


Kepada

JURUSAN TEKNIK INFORMATIKA
STMIK STIKOM BALIKPAPAN
LEMBAR PERSETUJUAN


Proposal Skripsi dengan judul

SISTEM PENDETEKSI

WAJAH MANUSIA PADA CITRA DIGITAL



yang diajukan oleh

NamaMhs

NIM: XX.YY.ZZZ


telah disetujui oleh Jurusan Teknik Informatika STIKOM Balikpapan dengan dosen pembimbing:
1. …………………………………………………………….
2. …………………………………………………………….



Balikpapan, tanggal……………………
Ketua Jurusan Teknik Informatika



Setyo Nugroho, ST, MKom                           

IMPLEMENTASI SISTEM PENDETEKSI
WAJAH MANUSIA PADA CITRA DIGITAL


1. LATAR BELAKANG

Dewasa ini teknologi pengenalan wajah semakin banyak diaplikasikan, antara lain untuk sistem pengenalan biometrik (yang dapat juga dikombinasikan dengan fitur biometrik yang lain seperti sidik jari dan suara), sistem pencarian dan pengindeksan pada database citra digital dan database video digital, sistem keamanan kontrol akses area terbatas, konferensi video, dan interaksi manusia dengan komputer.
Dalam bidang penelitian pemrosesan wajah (face processing), pendeteksian wajah manusia (face detection) adalah salah satu tahap awal yang sangat penting di dalam proses pengenalan wajah (face recognition). Sistem pengenalan wajah digunakan untuk membandingkan satu citra wajah masukan dengan suatu database wajah dan menghasilkan wajah yang paling cocok dengan citra tersebut jika ada. Sedangkan autentikasi wajah (face authentication) digunakan untuk menguji keaslian/kesamaan suatu wajah dengan data wajah yang telah diinputkan sebelumnya. Bidang penelitian yang juga berkaitan dengan pemrosesan wajah adalah lokalisasi wajah (face localization) yaitu pendeteksian wajah namun dengan asumsi hanya ada satu wajah di dalam citra, penjejakan wajah (face tracking) untuk memperkirakan lokasi suatu wajah dalam video secara real time, dan pengenalan ekspresi wajah (facial expression recognition) untuk mengenali kondisi emosi manusia (Yang, 2002).
Pada kasus tertentu seperti pemotretan untuk pembuatan KTP, SIM, dan kartu kredit, citra yang didapatkan umumnya hanya berisi satu wajah dan memiliki latar belakang seragam dan kondisi pencahayaan yang telah diatur sebelumnya sehingga deteksi wajah dapat dilakukan dengan lebih mudah. Namun pada kasus lain sering didapatkan citra yang berisi lebih dari satu wajah, memiliki latar belakang yang bervariasi, kondisi pencahayaan yang tidak tentu, dan ukuran wajah yang bervariasi di dalam citra. Contohnya adalah citra yang diperoleh di bandara, terminal, pintu masuk gedung, dan pusat perbelanjaan. Selain itu juga pada citra yang didapatkan dari foto di media massa atau hasil rekaman video. Pada kasus tersebut pada umumnya wajah yang ada di dalam citra memiliki bentuk latar belakang yang sangat bervariasi.
Penelitian ini akan difokuskan pada masalah pendeteksian wajah. Dengan sistem pendeteksi wajah yang akurat, maka proses selanjutnya yaitu pengenalan wajah dapat dilakukan dengan lebih mudah.

2. PERUMUSAN MASALAH

Masalah deteksi wajah dapat dirumuskan sebagai berikut: dengan masukan berupa sebuah citra digital sembarang, sistem akan mendeteksi apakah ada wajah manusia di dalam citra tersebut, dan jika ada maka sistem akan memberitahu berapa wajah yang ditemukan dan di mana saja lokasi wajah tersebut di dalam citra. Keluaran dari sistem adalah posisi dari subcitra yang berisi wajah yang berhasil dideteksi.

3. BATASAN MASALAH

Pada sistem deteksi wajah ini diberikan pembatasan masalah sebagai berikut:
·         Citra masukan yang digunakan adalah hitam putih dengan 256 tingkat keabuan (grayscale).
·         Wajah yang akan dideteksi adalah wajah yang menghadap ke depan (frontal), dalam posisi tegak, dan tidak terhalangi sebagian oleh objek lain.
·         Metode yang dipakai adalah jaringan syaraf tiruan multi-layer perceptron dengan algoritma pelatihan back-propagation.

4.  TUJUAN PENELITIAN

Penelitian bertujuan untuk membuat suatu desain dan implementasi sistem deteksi wajah dengan masukan berupa citra digital sembarang. Sistem ini akan menghasilkan subcitra yang berisi wajah-wajah yang berhasil dideteksi.

5. MANFAAT PENELITIAN

Hasil penelitian ini diharapkan dapat digunakan sebagai langkah awal untuk membangun sistem pemrosesan wajah yang menyeluruh, yang bisa diaplikasikan pada sistem pengenalan wajah atau verifikasi wajah. Program aplikasi yang dibuat juga dapat dijadikan bahan untuk penelitian lebih lanjut di bidang yang berkaitan.
Dengan penyesuaian tertentu, metode yang digunakan mungkin dapat juga dimanfaatkan untuk sistem deteksi objek secara umum yang tidak hanya terbatas pada wajah, misalnya deteksi kendaraan, pejalan kaki, bahan produksi, dan sebagainya.
Dari hasil penelitian ini juga diharapkan dapat diperoleh pemahaman yang lebih baik terhadap jaringan syaraf tiruan, dan pengaruh berbagai parameter yang digunakan terhadap unjuk kerja pengklasifikasi jaringan syaraf tiruan.

6. METODE PENELITIAN

Metode yang akan digunakan dalam penelitian ini terdiri dari langkah-langkah berikut:
·         Melakukan studi kepustakaan terhadap berbagai referensi yang berkaitan dengan penelitian yang dilakukan. Topik-topik yang akan dikaji antara lain meliputi: pengenalan pola, pengolahan citra digital, pendeteksian objek secara umum, pendeteksian wajah, dan jaringan syaraf tiruan.
·         Menyiapkan training data set yang akan digunakan untuk proses pembelajaran dari sistem. Data wajah yang digunakan akan melalui praproses berupa resizing menjadi 20x20 pixel, masking, dan histogram equalization.
·         Merancang sistem pendeteksi wajah dengan jaringan syaraf tiruan, kemudian membuat program aplikasinya.
·         Melakukan pelatihan pada sistem dengan training data set yang telah disiapkan sebelumnya.
·         Melakukan pengujian unjuk kerja sistem. Unjuk kerja pada sistem pendeteksi wajah diukur dengan menghitung detection rate dan false positif rate.

7.  JADWAL PENELITIAN


No.

Kegiatan

Bulan / tahun

Okt
03
Nop
03
Des
03
Jan
04
Feb
04
Mar
04
1
Studi Kepustakaan






2
Penulisan Proposal






3
Pengumpulan Data






4
Pembuatan Sistem/Program






5
Pengujian Sistem






6
Penulisan Laporan Akhir








8.  DAFTAR PUSTAKA
L. Fausett, 1994, Fundamentals of Neural Networks: Architectures, Algorithms, and Applications, Prentice-Hall Inc., USA.

R.C. Gonzalez, R.E. Woods, 1992, Digital Image Processing, Addison-Wesley Publishing Company, USA.

E. Hjelmas, B.K. Low, 2001, “Face Detection: A Survey”, Computer Vision and Image Understanding. 83, pp. 236-274.

H. Rowley, S. Baluja, T. Kanade, 1998, “Neural Network-Based Face Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 20, no. 1.

M.H. Yang, D. Kriegman, N. Ahuja, 2002, “Detecting Faces in Images: A Survey”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 24, no. 1.

Pondasi


Pondasi adalah bagian bangunan yang berfungsi untuk menyalurkan beban kedalam tanah.
Teknik Pondasi adalah suatu upaya teknis untuk mendapatkan jenis dan dimensi pondasi bangunan yang efisien, sehingga dapat menyangga beban yang bekerja dengan baik. Merupakan bagian dari ilmu Geoteknik.
Jenis-Jenis Pondasi
Pondasi dapat digolongkan menjadi tiga jenis:
  1. Pondasi Dangkal (eng: Shallow Foundation, de: Flach- und Flächengründungen), di dalamnya terdiri dari:
          – Pondasi Setempat (eng:
    Single Footing, de: Einzelfundament)
          – Pondasi Menerus (eng:
    Continuous Footing, de: Streifenfundament)
          – Pondasi Pelat / Rakit (eng:
    Plate / Raft Foundation, de:Plattenfundament)
  2. Pondasi Dalam (eng: Deep Foundation, de: Tiefgründungen), contohnya: Pondasi Tiang Pancang (eng: Pile Foundation, de: Pfahlgründungen)
  3. Kombinasi Pondasi Pelat dan Tiang Pancang / Pondasi Rakit-Tiang (eng: Combination of Plate-Pile Foundation / Piled Raft Foundation / Raft-Pile Foundation, de: Kombinierte Platten-Pfahlgründungen-KPP)
Jenis pondasi yang digunakan dalam suatu perencanaan bangunan tergantung dari jenis tanah dan beban yang bekerja pada lokasi rencana proyek.
Beban yang Bekerja Pada Pondasi
Beban yang bekerja pada suatu pondasi dapat diproyeksikan menjadi:
  • Beban Horizontal/Beban Geser, contohnya beban akibat gaya tekan tanah, transfer beban akibat gaya angin pada dinding.
  • Beban Vertikal/Beban Tekan dan Beban Tarik, contohnya:
          – Beban Mati, contoh berat sendiri bangunan
          – Beban Hidup, contoh beban penghuni, air hujan dan salju
          – Gaya Gempa
          – Gaya Angkat Air (eng:
    Lifting Force, de: Auftriebskraft)
  • Momen
  • Torsi