P. 1
Modul 2 - Laporan Pendahuluan

Modul 2 - Laporan Pendahuluan

|Views: 746|Likes:
Published by Cahya Perdana

More info:

Published by: Cahya Perdana on Oct 25, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

11/08/2012

pdf

text

original

SOAL PENDAHULUAN 1. Jelaskan istilah berikut : a. PID b. PPID c. Child Process d. Parent Process e. Zombie Process 2.

Jelaskan apa yang anda ketahui mengenai daemon kemudian jabarkan tahapan apa saja yang diperlukan dalam membuat suatu daemon. Sertakan juga source code sebuah daemon berdasarkan tahapan yang anda jabarkan ! 3. Sebutkan perbedaan named pipe dan unnamed pipe, berikan contoh sederhananya ! 4. Jelaskan apa itu Process dan IPC, jelaskan juga hubungan diantara keduanya! 5. Berikan pengertian mengenai istilah – istilah berikut dan sertakan pula ilustrasi dari masing – masing istilah sehingga dapat terlihat perbedaan diantaranya! a. Shared Memory b. Pipes c. Message Queue d. Semaphore e. Socket 6. Gambarkan dan jelaskan alur dari proses pada sistem operasi! 7. Proses terdiri atas banyak operasi / fungsi, sebutkan dan jelaskan masing – masing operasi / fungsi tersebut! 8. Jelaskan alur Message Queue berikut:

alur message queue

9. Jelaskan masing – masing operator dalam fungsi shared memory berikut:
int shmctl(int shmid, int cmd, struct shmid_ds *buf);

10. Jelaskan masing – masing operator dalam fungsi semaphore berikut :
int semctl(int semid, int semnum, int cmd, union semun arg);

PID ini merupakan “penunjuk” bagi kernel. dengan sedikit atau tanpa hubungan lansung dengan pengguna (User Interface). Proses induk yang mati akan membuat sistem operasi mengira bahwa proses telah selesai sehingga akan kembali ke terminal user. sehingga child process pun memiliki berbagai “sifat” yang sama dengan proses induknya. sebuah parent process dapat memiliki banyak child process. daemon apache web server. melainkan merujuk kepada proses induk (parent process) suatu proses. Forking dan Pembunuhan Proses Induk Langkah pertama dalam pembuatan daemon adalah menspawn proses menjadi induk dan anak dengan melakukan forking. PPID : merupakan singkatan daripada Parent Process Identifier.JAWABAN 1. d. kemudian mematikan proses induk. Penjelesan istilah : a. 2. Sama halnya dengan PID. httpd tadi. Maksudnya. Biasanya daemon bekerja pada waktu yang sangat lama dengan fungsi mendengarkan dan menunggu request dan menjalankan responnya berupa proses. child process dibentuk dengan menggunakan command fork(). Child Process : merupakan istilah untuk sebuah proses yang dibuat oleh sebuah proses pendahulunya. Tahapan membuat daemon yang selanjutnya disebut daemonizing adalah sebagai berikut: a. c. b. Pada Unix. tetapi PPID ini tidak merujuk kepada proses tersebut. yaitu proses anak yang melanjutkan program setelah kita membunuh induknya. PID : merupakan singkatan daripada Process Identifier. Entry ini masih diperlukan agar sistem dapat membaca exit status daripada process. Misalnya httpd. dan hasil daripada system call tersebut adalah sebuah child process. yang merupakan program yang menangani permintaan http (web). e. yakni daemon yang menagani protocol http. mengirim isi situs web. Dari langkah ini kita telah mendapatkan satu proses yang hampir bekerja di background. Zombie Process : merupakan istilah untuk sebuah proses yang telah selesai tugasnya (telah selesai dijalankan) tetapi masih terdaftar atau memiliki entry pada process table. Contoh source code untuk forking: . PID ini merupakan digit angka yang digunakan oleh kernel suatu sistem sebagai acuan untuk sebuah proses yang berlangsung. Parent Process : merupakan istilah untuk sebuah proses yang telah membuat sebuah proses lainnya atau lebih. Sebuah proses dikategorikan sebagai parent apabila proses tersebut melakukan system call fork(). maka harus dikirim sinyal SIGCHILD ke parent process secara manual. Untuk menghentikannya. Daemon merupakan background prosess yang didesain agar dapat menjalankan suatu proses secara otomatis kerena tidak memiliki terminal pengontrol. yang nantinya bisa digunakan sebagai parameter untuk mengutakatik proses tersebut. Perlu diingat. tetapi sebuah child process hanya dapat memiliki sebuah parent process.

sehingga proses akan mendapatkan session ID yang baru. yaitu standard input (STDIN). close(STDERR_FILENO). Langkah ini dapat dilakukan dengan cara memanggil fungsi setsid(). standard output (STDOUT).pid_t pid. Ada tiga jenis standar I/O descriptor. } //If we got a good PID. dan standard error (STDERR). Misalnya: 2 umask (027) akan membatasi mode pembuatan file ke 750 (komplemen dari 027) //Change the file mode mask umask(0). termasuk proses yang menjalankannya. } c. close(STDOUT_FILENO). if (pid < 0) { exit(EXIT_FAILURE). 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. Melakukan Masking pada File Creation Sebagian besar daemon bekerja dalam previlege super user. Fungsi umask() akan mencegah file previleges yang tidak aman dalam setiap pembuatan file. then we can exit the parent process if (pid > 0) { exit(EXIT_SUCCESS). Membuat Proses Bekerja Secara Independen Daemon harus bekerja secara independen dari proses lain. if (sid < 0) { /* Log any failure */ exit(EXIT_FAILURE). //Fork off the parent process pid = fork(). . // Close out the standard file descriptors close(STDIN_FILENO). } b. daemon harus memproteksi setiap file yang dibuat. d. Untuk alasan keamanan. /* Create a new SID for the child process */ sid = setsid().

Maka di dalam daemon harus terdapat pendengar signal yang akan merespon ketika daemon dikirimi signal tertentu. Bisa saja pada saat starting.gz Anonymous Pipe: merupakan istilah yang digunakan dalam pemrograman sistem Unix. Pipe ini digunakan pada proses yang akan membuat proses baru. 3. Sebuah proses juga melibatkan . Contohnya adalah sebagai berikut: ls –al | awk 4. working directory berada pada user home. Hal ini dapat dilakukan dengan memanggil fungsi signal() untuk menginstall sebuah signal listener.e. Proses tidak hanya sekedar suatu kode program (text section). maka satu-satunya cara untuk mengetahui apa yang terjadi dengan daemon tersebut adalah dengan logging. maka file system user directory tidak akan pernah bisa di unmount. dan bersifat First-in. Named pipe bersifat permanen. dan bersifat FIFO. Named Pipe merupakan salah satu metode dalam komunikasi antar proses. sehingga harus dihapus ketika sudah tidak diperlukan. register. Logging digunakan untuk menulis suatu pesan dari daemon atau untuk mendebug kesalahan yang terjadi. Karena daemon bekerja hingga sistem reboot. Perlu diketahui bahwa signal 15 (SIGTERM) dan signal 9 (SIGKILL) tidak dapat ditangkap oleh signal handler. First-out (FIFO). Named Pipe: merupakan istilah yang digunakan pada pemrograman sistem Unix. Mendengarkan Signal Tugas utama dari sebuah daemon sebenarnya adalah mendengarkan request. dan variabel di dalamnya. Logging Karena daemon tidak memiliki terminal pengontrol. Contoh named pipe berikut adalah membuat pipe untuk mengatur gzip untuk mengkompres apapun yang di-pipe padanya : mkfifo my_pipe gzip -9 -c < my_pipe > out. Anonymous pipe merupakan “bahasa” yang cukup primitif. dimana proses baru tersebut mewarisi akhir daripada pipe tersebut. f. melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Logging harus banyak dilakukan oleh daemon untuk menyediakan informasi sebaik-baiknya baik bagi user maupun programmer. Proses merupakan sebuah program yang sedang dieksekusi yang mencakup program counter. Running Directory Direktori kerja suatu daemon harus berada pada direktori yang selalu hidup. g.

mapped memory. shared memory. Suatu proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem. Berarti. proses dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain. dan RPC. message queue. fifo. baik itu proses yang berada di dalam komputer yang sama. Inter-Process Communication (IPC) atau Komunikasi antar proses adalah cara atau mekanisme pertukaran data antara satu proses dengan proses lainnya. atau komputer jarak jauh yang terhubung melalui jaringan. agar dapat diakses secara bersamaan.stack yang berisi data sementara (parameter fungsi/metode. proses dapat melakukan komunikasi dengan proses lainnya lewat READ dan WRITE pada memori tersebut Pipe: merupakan cara komunikasi sekuensial atau bertahap antarproses. Shared Memory: merupakan istilah untuk memori yang dialokasikan untuk beberapa proses. dan variabel lokal) dan data section yang menyimpan variabel-variabel global. antara lain pipe. Maksudnya. akan menjadi input untuk proses yang berada di belakang tanda pipe. IPC terdiri atas protokol yang menjamin sebuah respons dari sebuah permintaan. Artinya tiap output sebuah proses di depan tanda pipe. IPC memiliki beberapa macam kategori. semaphore. . Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat dibedakaan menjadi yaitu proses independent dan proses kooperatif. Dengan kata lain. semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan proses lain adalah independent. 5. return address. socket.

istilah Socket: merupakan untuk endpoint dari komunikasi . yang merupakan antrian. Message Queue juga dapat berbentuk struktur data linked-list dalam kernel.Message Queue: merupakan istilah dalam software engineering untuk komunikasi antarproses. Semaphore: merupakan istilah untuk sebuah variabel peubah yang terlindungi. dan memiliki hak mengendalikan akses daripada beberapa proses. Sistem ini menggunakan prinsip FIFO.

6. terdapat keadaan-keadaan dimana proses tersebut berada (status proses). Status Terminated yaitu status dimana proses diakhiri. tersedianya Status Running yaitu status dimana proses dieksekusi. Status Waiting yaitu status dimana proses sedang menunggu suatu kejadian menunggu operasi I/O selesai. Alur suatu proses dapat digambarkan melalui diagram sebagai berikut : Dari diagram di atas. yang terdiri dari: Status New yaitu status dimana proses sedang dibuat. Socket menggunakan arsip pada sistem untuk tempat penyimpanan alamat sementara. menunggu signal dari proses lain. Status Ready yaitu status dimana proses siap dieksekusi tetapi CPU mengerjakan proses lain.antarproses dalam sebuah server. . Keadaan proses ini disebut sebagai status proses. Proses – proses yang dikelola oleh sistem operasi akan melalui serangkaian keadaan yang merupakan bagian dari aktivitasnya. Pada status ini instruksi – instruksi pada proses.

Perintah ini diikuti dengan PID proses yang ingin dihentikan top: merupakan perintah untuk menampilkan proses-proses teratas yang menggunakan banyak memori. dan di-refresh terus menerus. Sebuah proses dari keadaan Running dapat menjadi Ready kembali karena diinterupsi oleh proses lain.Sebuah proses menjadi Waiting karena proses tersebut menunggu suatu kejadian tertentu seperti selesainya operasi I/O. misalnya perekaman data ke disk karena pada saat perekaman dilakukan proses sedang tidak menggunakan CPU maka scheduler segera mengalokasikan CPU ke proses lain yang telah Ready. 7. Apabila kejadian yang ditunggu telah selesai maka proses dipindahkan kembali ke antrian Ready dan siap dijadwalkan. wait: merupakan perintah untuk menginstruksikan agar proses menunggu hinggas semua proses pada background selesai. fork(): merupakan perintah untuk membuat sebuah proses daripada proses lain yang memiliki banyak kesamaan dengan proses yang menggunakan fungsi ini. exit(status): mengakhiri proses dan mengembalikan nilai daripada status . Jatah waktu yang diberikan sering disebut sebagai quantum time (time slice) yang dapat berkisar antara 1 hingga 100 milidetik. ps: merupakan perintah untuk menampilkan semua proses yang sedang berjalan kill: perintah ini dignakan untuk mematikan sebuah proses yang diinginkan. fg: merupakan perintah untuk mengembalikan proses yang berada di belakang layar ke depan (foreground) bg: merupakan perintah untuk menaruh proses yang terletak di foreground ke belakang layar (background) nohup: merupakan perintah agar sebuah proses kebal dari sinyal HANG-UP nice: merupakan perintah yang berguna untuk mengatur prioritas-prioritas daripada proses yang sedang berjalan. Interupsi suatu proses terkait erat dengan strategi penjadwalan proses yang digunakan sistem operasi yaitu strategi preemptive dimana suatu proses dapat saja disela oleh proses lain pada saat Running. Interupsi dapat disebabkan karena jatah waktu yang diberikan CPU ke proses tersebut telah habis sementara proses masih memerlukan sejumlah waktu untuk selesai.

maupun struktur data shmid_ds • fungsi buf merupakan pointer menuju ke struktur data shmid_ds. bersama dengan parameter shmid yang berkorespondensi dengan nilai yang ditunjukkan oleh parameter buf. IPC_SET: digunakan untuk memberi nilai untuk field-field dalam struktur data shmid_ds.…. fungsi shmctl() merupakan sebuah operasi yang diperintah oleh cmd pada sebauh shared memory dimana PIDnya berada dalam fungsi shmid. IPC_RMID: digunakan untuk menghapus ID shared memory (oleh shmid). int semnum. int semctl(int semid.. fungsi shmid merupakan identifier daripada shared memory tempat proses sedang berlangsung. ID daripada shared memory sendiri akan di-return oleh fungsi shmget. dan telah didefinisikan dalam header sys/shm. fungsi cmd merupakan operasi kontrol pada shared memory yang akan dijalankan. union semun arg).h 10. perintah ini dapat dianggap sebagai indeks untuk set dari semaphore.8. Semctl : mengubah akses dan beberapa setting perintah semaphore.) merupakan perintah yang akan dilakukan terhadap set. int cmd. Perintah ini dianalogikan menuju msgctl system calls yang digunakan untuk operasi pada message queues. Argumen berikutnya semctl(…. Fungsi ini terdiri atas: • • IPC_STAT: digunakan untuk mendapatkan status daripada shared memory yang teridentifikasi pada parameter shmid. Argumen pertama dari semctl(int semid.. semctl(…. Pada akhirnya output yang keluar akan sama seperti pada mekanisme queue biasa. int semnum. Pada dasarnya.. sehingga pada alur tersebut pesan terkhir akan langsung dikirim ke queue paling bawah. akan tetapi mekanisme tersebut sedikit dimodifikasi. parameter shmid.) adalah sebuah nilai kunci / paramater (untuk menganalisa / mengakses suatu semaphore pada perintah semget). . Alur message queue dalam diagram pada soal mengilustrasikan tentang bagaimana mekanisme dasar dari message queue itu sendiri. int cmd…. dengan semaphore awal diwakili oleh nilai nol (0).union semun arg) adalah nomor dari semaphore yang operasinya mengarah ke target yang diinginkan. Diagram tersebut menjelaskan bahwa ketika pesan tersebut masuk akan langsung dikirim ke suatu tempat dan dilakukan mekanisme queue itu sendiri (first in first out). 9.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->