Rabu, 11 Februari 2009

Langkah-langkah Membuat Daemon -daemonizing


1. Apakah yang disebut dengan daemon, sebutkan cara kerjanya dan pseudocode dari pembuatan daemon?
Jawab:
Daemon merupakan background prosess yang didesain agar dapat menjalankan suatu proses secara otomatis kerena tidak memiliki terminal pengontrol, dengan sedikit atau tanpa hubungan lansung dengan pengguna (User Interface). Biasanya daemon bekerja pada waktu yang sangat lama dengan fungsi mendengarkan dan meunggu request dan menjalankan responya berupa proses. Salah satu contohnya adalah apache webserver http web daemon (httpd).

Langkah-Langkah Membuat Daemon (Daemonizing) :
1. Forking dan Pembunuhan Proses Induk
Langkah pertama dalam pembuatan daemon adalah menspawn proses menjadi induk dan anak dengan melakukan forking, kemudian mematikan proses induk. Proses induk yang mati akan membuat sistem operasi mengira bahwa proses telah selesai sehingga akan kembali ke terminal user. Dari langkah ini kita telah mendapatkan satu proses yang hampir bekerja di background, yaitu proses anak yang melanjutkan program setelah kita membunuh induknya.
2. Membuat Proses Bekerja Secara Independen
Daemon harus bekerja secara independen dari proses lain, termasuk proses yang menjalankannya. Langkah ini dapat dilakukan dengan cara memanggil fungsi setsid(), sehingga proses akan mendapatkan session ID yang baru.
3. Menutup Standard I/O Descriptor yang diwarisi
Standard I/O descriptor dan descriptor yang diwarisi dari proses induk harus ditutup untuk mencegah intervensi dari user serta untuk pengamanan. Ada tiga jenis standar I/O descriptor, yaitu standard input (STDIN), standard output (STDOUT), dan standard error (STDERR).
4. Melakukan Masking pada File Creation
Sebagian besar daemon bekerja dalam previlege super user. Untuk alasan keamanan, daemon harus memproteksi setiap file yang dibuat. Fungsi umask() akan mencegah file previleges yang tidak aman dalam setiap pembuatan file. Misalnya: 2 umask (027) akan membatasi mode pembuatan file ke 750 (komplemen dari 027).
5. Running Directory
Direktori kerja suatu daemon harus berada pada direktori yang selalu hidup. Bisa saja pada saat starting, working directory berada pada user home. Karena daemon bekerja hingga sistem reboot, maka file system user directory tidak akan pernah bisa di unmount.
6. Mendengarkan Signal
Tugas utama dari sebuah daemon sebenarnya adalah mendengarkan request. Maka di dalam daemon harus terdapat pendengar signal yang akan merespon ketika daemon dikirimi signal tertentu. Hal ini dapat dilakukan dengan memanggil fungsi signal() untuk mengintall sebuah signal listener. Perlu diketahui bahwa signal 15 (SIGTERM) dan signal 9 (SIGKILL) tidak dapat ditangkap oleh signal handler.
7. Logging
Karena daemon tidak memiliki terminal pengontrol, maka satu-satunya cara untuk mengetahui apa yang terjadi dengan daemon tersebut adalah dengan logging. Logging digunakan untuk menulis suatu pesan dari daemon atau untuk mendebug kesalahan yang terjadi. Logging harus banyak dilakukan oleh daemon untuk menyediakan informasi sebaik-baiknya baik bagi user maupun programmer.
2. Sebutkan 3 contoh daemon yang ada pada debian linux, dan jelaskan pula tugasnya?
Jawab:
• httpd : daemon apache web server, daemon yang menagani protocol http, httpd tadi, yang merupakan program yang menangani permintaan http (web), mengirim isi situs web. Service menawarkan Aplikasi Web
• Identd, tugasnya adalah : mengidentifikasi user dan log informasi jika menerima koneksi dari localhost pada local network.
• Sshd tugasnya adalah menghandel koneksi SSH yang masuk.

3. Ketika daemon dibuat, penutupan file descriptor membuat proses daemon tidak dapat langsung saja menulis ke standard error. Untuk itu diperlukan fasilitas error logging dengan beberapa metode untuk logging salah satu diantaranya dengan menggunakan service bernama “syslogd”. Jelaskan dengan singkat apa yang dimaksud “syslogd” tersebut dan beri contoh sederhana.
Jawab:
Sistem operasi UNIX dan keluarganya memiliki daemon khusus yang digunakan untuk logging yang dinamakan syslogd. Daemon ini mengelompokkan pesan-pesan menjadi beberapa kelompok (disebut facility) dan kelompok-kelompok ini dapat dikirim ke tempat-tempat yang berbeda, misalnya langsung dikirim ke sysadmin lewat email, dikirimkan ke console terminal semua pengguna yang sedang logged in, atau ditulis dalam suatu file logger. Konfigurasi dari daemon syslogd ini ditulis dalam file /etc/syslog.conf.
Contoh sederhananya:
The following is an example of an /etc/syslog.conf file:

#
# syslogd config file
#
# facilities: kern user mail daemon auth syslog lpr binary
# priorities: emerg alert crit err warning notice info debug
kern.debug /var/adm/syslog/kern.log
user.debug /var/adm/syslog/user.log
daemon.debug /var/adm/syslog/daemon.log
auth.debug /var/adm/syslog/auth.log
syslog.debug /var/adm/syslog/syslog.log
mail,lpr.debug /var/adm/syslog/misc.log
binary.err /var/adm/binary.errlog
msgbuf.err /var/adm/crash/msgbuf.savecore
kern.debug /var/adm/messages
kern.debug /dev/console
*.emerg *

4. Jelaskan secara singkat dan jelas apa yang dimaksud dengan “memory management”? apakah ada perbedaan memory management antara “windows”dan “unix”?jika ada, sebutkan?
Jawab:
bagan.JPG

Memory management merupakan suatu system yang dapat melakukan proses pengubahan alamat memori virtual menjadi alamat memori sebenarnya ( Memory Fisik), Perangkat keras yang melakukan proses ini disebut sebagai Memory Management Unit.

Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:
• Memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama diantara sejumlah proses yang aktif. Agar dapat memanfaatkan pemroses dan fasilitas masukan/keluaran secara efisien, maka diinginkan memori yang dapat menampung sebanyak mungkin proses.
• Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di system komputer.

Perbedaan memory management antara windows dan unix:
• Windows
Windows NT dan variannya menggunakan file swap yang dialokasikan secara dinamis untuk memory management. Swap file dialokasikan pada disk, untuk pengaksesan obyek di memori yang lebih jarang, sehingga terdapat lebih banyak RAM yang tersedia untuk obyek yang aktif digunakan.
• Unix
Pada instalasi hard drive Linux pada umumnya menggunakan sebuah “swap partition”, dimana ruang disk dialokasikan untuk paging dipisahkan dari data umum, dan digunakan hanya untuk operasi paging.

0 komentar:

Posting Komentar

Posting Terakhir

Followers

Sponsors

 

Kuliah Komputer. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com