Kamis, 17 Juli 2014

daemon

Diposting oleh Unknown di 23.36 0 komentar
Daemon proses adalah proses yang bekerja pada background karena tidak memiliki
terminal pengontrol. Dalam sistem operasi Windows lebih dikenal dengan sebutan service.
Daemon adalah proses yang didesain agar proses tidak mendapatkan intervensi dari user.
Daemon biasanya bekerja untuk jangka waktu yang sangat lama dan bertugas
“mendengarkan” request dan menjalankan responsnya. Contoh dari daemon ini misalnya
adalah Apache Web Server HTTP daemon. Daemon ini bekerja pada background dan
mendengarkan request HTTP pada port tertentu (biasanya 80 atau 8080) dan memberikan
respon terhadap request tersebut, berdasarkan tipe dari request.

ciri-ciri daemon yang membedakan dari proses lainnya
- Tidak memiliki parent process ID
- Tidak memiliki terminal pengontrol baik STDOUT, STDIN, maupun STDERR
- Berjalan dalam previlege super user.
Cara memebuat daemon
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.

Ada beberapa cara untuk melakukan logging, antara lain:

- Metode Log File:
Semua pesan ditulis ke dalam file tertentu yang diatur d alam file konfigurasi daemon
tersebut. Kita dapat melakukannya dengan memanggil fungsi fopen().

- Metode Log Server:
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.
Nahh.. contoh programnya

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <signal.h>
#include <termios.h>

void daemonize();
void working();

int main(void)
{
    // Initialize the logging interface
    openlog( "daemonlock", LOG_PID, LOG_LOCAL5 );
    syslog( LOG_INFO, "starting" );
    daemonize();
    working();

    // Finish up
    syslog( LOG_NOTICE, "terminated" );
    closelog();

    exit(EXIT_SUCCESS);
}

void daemonize()
{
    pid_t pid, sid;

    pid = fork();

    if (pid < 0)
    {
        syslog(LOG_ERR, "tidak bisa membuat proses anak");
        exit(EXIT_FAILURE);
    }

    if (pid > 0)
    {
        syslog(LOG_INFO, "proses induk dibunuh");
        exit(EXIT_SUCCESS);
    }

    umask(0);

    sid = setsid();

    if (sid < 0)
    {
        syslog(LOG_ERR, "tidak bisa membuat SID baru proses anak");
        exit(EXIT_FAILURE);
    }

    if ((chdir("/")) < 0)
    {
        syslog( LOG_ERR, "tidak bisa berpindah direktori ke %s, code %d (%s)",
                "/", errno, strerror(errno) );
        exit(EXIT_FAILURE);
    }

    freopen( "/dev/null", "r", stdin);
    freopen( "/dev/null", "w", stdout);
    freopen( "/dev/null", "w", stderr);

    syslog(LOG_INFO, "daemon berhasil diciptakan :)");

}

void working()
{
    while(1)
    {
        sleep(1);
            // do what you want in here...
    }
}

SINYAL ANALOG DAN DIGITAL

Diposting oleh Unknown di 18.18 0 komentar
 SINYAL ANALOG DAN DIGITAL


SINYAL ANALOG  adalah sinyal data dalam bentuk gelombang yang kontinyu, yang membawa informasi dengan mengubah karakteristik gelombang. Dua parameter/ karakteristik terpenting yang dimiliki oleh isyarat analog adalah amplitude dan frekuensi. Isyarat analog biasanya dinyatakan dengan gelombang sinus, mengingat gelombang sinus merupakan dasar untuk semua bentuk isyarat analog.
Gelombang pada Sinyal Analog yang umumnya berbentuk gelombang sinus memiliki tiga variable dasar, yaitu amplitudo, frekuensi dan phase.
• Amplitudo merupakan ukuran tinggi rendahnya tegangan dari sinyal analog.
• Frekuensi adalah jumlah gelombang sinyal analog dalam satuan detik.
• Phase adalah besar sudut dari sinyal analog pada saat tertentu.




SINYAL DIGITAL merupakan sinyal data dalam bentuk pulsa yang dapat mengalamogi Sinyal digital hanya memiliki dua keadaan, yaitu 0 dan 1, sehingga tidak mudah terpengaruh oleh derau/noise, tetapi transmisi dengan sinyal digitai perubahan yang tiba-tiba dan mempunyai besaran 0 dan 1.Teknol
Mampu mengirimkan informasi dengan kecepatan cahaya yang dapat membuat informasi dapat dikirim dengan kecepatan tinggi.l hanya mencapai jarak jangkau pengiriman data yang relatif dekat. Sinyal Digital juga biasanya disebut juga Sinyal Diskret.
Sistem Sinyal Digital merupakan bentuk sampling dari sytem analog. digital pada dasarnya di code-kan dalam bentuk biner (atau Hexa). besarnya nilai suatu system digital dibatasi oleh lebarnya / jumlah bit (bandwidth). jumlah bit juga sangat mempengaruhi nilai akurasi system digital.
Teknologi Sinyal Digital ini juga memiliki kelebihan yang tidak dimiliki olehTeknologi Sinyal Analog. Diantaranya adalah dibawah ini :
 Penggunaan yang berulang – ulang terhadap informasi tidak mempengaruhi kualitas dan kuantitas informsi itu sendiri.
 Informasi dapat dengan mudah diproses dan dimodifikasi ke dalam berbagai bentuk.
Dapat memproses informasi dalam jumlah yang sangat besar dan mengirimnya secara interaktif.
Pada saat ini banyak teknologi-teknologi yang memakai Teknologi Sinyal Digital. Karena kelebihan kelebihannya, antara lain:
untuk menyimpan hasil pengolahan, sinyal digital lebih mudah dibandingkan sinyal analog. Untuk menyimpan sinyal digital dapat menggunakan media digital seperti CD, DVD, Flash Disk, Hardisk. Sedangkan media penyimpanan sinyal analog adalah pita tape magnetik.
lebih kebal terhadap noise karena bekerja pada level ’0′ dan ’1′.
lebih kebal terhadap perubahan temperatur.
lebih mudah pemrosesannya.





Jumat, 11 Juli 2014

Data Link Layer

Diposting oleh Unknown di 06.42 0 komentar



Lapisan data-link adalah lapisan kedua dari bawah dalam model OSI, yang dapat melakukan konversi frame-frame jaringan yang berisi data yang dikirimkan menjadi bit-bit mentah agar dapat diproses oleh lapisan fisik. Lapisan ini merupakan lapisan yang akan melakukan transmisi data antara perangkat-perangkat jaringan yang saling berdekatan di dalam sebuah WAN, atau antara node di dalam sebuah segmen LAN yang sama. Lapisan ini bertanggungjawab dalam membuat frame, flow control, koreksi kesalahan dan pentransmisian ulang terhadap frame yang dianggap gagal.
Fungsi data link
Fungsi dari data link layer adalah
  1. menyediakan layanan bagi lapisan jaringan. Layanannya yang penting adalah pemindahan data dari lapisan jaringan pada node sumber ke lapisan jaringan di pada node yang dituju.
  1. Mengamati error transmisi .
  2. Pengaturan data flow.
  3. Raceiver dengan kecepatan yang rendah tidak dapat menampung pengirim dengan kecepatan tinggi.
Tugas Data Link
Tugas utama dari data link layer adalah sebagai fasilitas transmisi data mentah dan mentransformasi data tersebut ke saluran yang bebas dari kesalahan transmisi. Sebelum diteruskan ke Network Layer, lapisan data link melaksanakan tugas ini dengan memungkinkan pengirim memecah-mecah data input menjadi sejumlah data frame (biasanya berjumlah ratusan atau ribuan byte). Kemudian lapisan data link mentransmisikan frame tersebut secara berurutan dan memproses acknowledgement frame yang dikirim kembali oleh penerima. Karena lapisan fisik menerima dan mengirim aliran bit tanpa mengindahkan arti atau arsitektur frame, maka tergantung pada lapisan data-link-lah untuk membuat dan mengenali batas-batas frame itu. Hal ini bisa dilakukan dengan cara membubuhkan bit khusus ke awal dan akhir frame.
Layanan yang disediakan bagi lapisan jaringan

1. Layanan unacknowledged connectionless

Layanan unacknowledged ini mempunyai arti di mana node sumber mengirimkan sejumlah frame ke node lain yang dituju dengan tidak memberikan acknowledgment bagi diterimanya frame-frame tersebut. Tidak ada koneksi yang dibuat baik sebelum atau sesudah dikirimkannya frame. Bila sebuah frame hilang sehubungan dengan adanya noise, maka tidak ada usaha untuk memperbaiki masalah tersebut di lapisan data-link. Jenis layanan ini cocok bila laju kesalahan (error rate) sangat rendah, sehingga recovery bisa dilakukan oleh lapisan yang lebih tinggi. Sebagian besar teknologi [LAN] meggunakan layanan unacknowledgment connectionless pada lapisan data link.

2. Layanan acknowledged connectionless

Layanan acknowledged connectionless ini berkaitan dengan masalah reabilitas. Layanan ini juga tidak menggunakan koneksi, akan tetapi setiap frame dikirimkan secara independen dan secara acknowledged. Dalam hal ini, si pengirim akan mengetahui apakah frame yang dikirimkan ke komputer tujuan telah diterima dengan baik atau tidak. Bila ternyata belum tiba pada interval waktu yang telah ditentukan, maka frame akan dikirimkan kembali.

3.Layanan acknowledged connection-oriented

Layanan acknowledged connection-oriented ini merupakan layanan yang paling canggih dari semua layanan yang disediakan oleh lapisan data-link bagi lapisan jaringan. Dengan layanan ini, node sumber dan node tujuan membuat koneksi sebelum memindahkan datanya.
Framing
Untuk melayani lapisan jaringan, lapisan data-link harus menggunakan layanan yang disediakan oleh lapisan fisik. Apa yang dilakukan lapisan fisik adalah menerima aliran bit-bit mentah dan berusaha untuk mengirimkannya ke tujuan. Aliran bit ini tidak dijamin bebas dari kesalahan. Jumlah bit yang diterima mungkin bisa lebih sedikit, sama atau lebih banyak dari jumlah bit yang ditransmisikan dan juga bit-bit itu memiliki nilai yang berbeda-beda. Bila diperlukan, lapisan data-link juga dapat diserahi tanggung jawab untuk mendeteksi dan mengoreksi kesalahan yang terjadi.
Pendekatan yang umum dipakai adalah lapisan data link memecah aliran bit menjadi frame-frame dan menghitung nilai checksum untuk setiap frame-nya. Memecah-mecah aliran bit menjadi frame-frame lebih sulit dibandingkan dengan apa yang kita kira. Untuk memecah-mecah aliran bit ini, digunakanlah metode-metode khusus. Ada empat buah metode yang dipakai dalam pemecahan bit menjadi frame, yaitu :
  1. Karakter penghitung
  2. pemberian karakter awal dan akhir, dengan pengisian karakter
  3. Pemberian flag awal dan akhir, dengan pengisian bit
  4. Pelanggaran pengkodean Physical layer
Hamming Code
  • Menangani single error code
  • Cara membuat codenya :
  • Posisi parity bit ada di bit sesuai 2n (1,2,4,8,16,32….)
  • Selain posisi tersebut akan dipakai sebagai data (3,5,6,7, 9, 10, 11…)
  • Untuk mencari besar parity (0 atau 1) dapat dilakukan sbb:
    • Posisi 1 : bergantian ada 1bit dan tidak ada 1bit : ada 1bit, gak ada 1 bit,ada 1bit…..
    • Posisi 2 : bergantian ada 2 bit dan tidak ada 2 bit : ada 2bit, gak ada 2 bit,ada 2bit…..
    • Posisi 4 : bergantian ada 4 bit dan tidak ada 4 bit : ada 4 bit, gak ada 4 bit,ada 4 bit…..
    • Dan seterusnya untuk 8, 16,32,64….
    • Bit Paritas ditentukan sebagai 1 bila jumlah bit 1-nya adalah ganjil. Bit Paritas ditentukan sebagai 0 bila jumlah bit 1-nya adalah genap
Contoh :
Suatu data : 1 0 0 1 1 0 1 0
Membuat data word –nya:  – - 1 – 0 0 1 – 1 0 1 0 ( – paritas 15)
Carilah paritas-nya :
Posisi 1 : ? – 1 – 0 0 1 – 1 0 1 0
Jumlah bit 1 genap    paritas : 0
Posisi 2 : 0 ? 1 – 0 0 1 – 1 0 1 0
Jumlah bit 1 ganjil    paritas : 1
Posisi 4 : 0 1 1 ? 0 0 1 – 1 0 1 0
Jumlah bit 1 ganjil    paritas : 1
Posisi 8 : 0 1 1 1 0 0 1 ? 1 0 1 0
Jumlah bit 1 genap    paritas : 0
Jadi Code-word-nya :
0 1 1 1 0 0 1 0 1 0 1 0
Dicoba :cari kesalahan pada bit paritas-nya
0 1 0 1 0 1 1 0 0 0 1 1
1 1 1 1 1 0 0 0 1 1 0 0
0 0 0 0 1 0 0 0 1 0 1 0
 

cesillia winastuti Copyright © 2010 Design by Ipietoon Blogger Template Graphic from Enakei