1.
Jelaskan
Perbedaan thread dan proses?
Proses: Gabungan dari ruang
virtual memori, kode, data, dan resource sistem
Thread: Kode yang secara serial akan
diproses per satu proses
Perbedaan Proses dan Thread
Proses
adalah program sedang dieksekusi. Sedangkan thread adalah alur kontrol dari suatu proses. Perbedaan antara
proses dan thread adalah :
-
Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya.
Proses memiliki ruang alamat sendiri-sendiri.
-
Thread memiliki akses langsung ke segemen data dari prosesnya. Masing-masing
proses memiliki salinan segmen data dari parent process-nya.
-
Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar
proses harus menggunakan komunikasi antar proses.
- Thread hampir tidak memiliki overhead.
Proses memiliki overhead.
-
Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam
satu proses. Proses hanya dapat mengendalikan proses anakannya.
-
Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat
mempengaruhi tingkah laku thread lain dalam satu proses. Perubahan pada parent
proses tidak mempengaruhi proses anakan.
- Prosesor
mengeksekusi thread, bukan proses, jadi tiap aplikasi setidaknya memiliki satu
proses, dan tiap proses paling tidak memiliki satu thread eksekusi yang
dinamakan primary thread. Sebuah proses dapat memiliki banyak thread selain
primary thread
2.
Cari tahu
tentang DAEMON, jelaskan dan berikan contohnya?
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).
3.
Gambarkan proses terjadinya thread?
Thread
dibuat saat suatu proses akan dieksekusi oleh prosesor, ada 2 macam model thread
yaitu single thread dan multithread.
4.
Cari tahu
tentang fork(), jelaskan fungsinya?
Sistem operasi UNIX mempunyai system
call fork yang berfungsi untuk membuat proses baru. Proses yang memanggil system
call fork ini akan dibagi jadi dua, proses induk dan proses turunan yang
identik. Analoginya seperti pembelahan sel, dimana satu sel membelah jadi dua
sel yang identik. Proses induk dan turunan independen satu sama lain dan
berjalan bersamaan. Return code dari system call ini adalah
suatu integer. Untuk proses anak return code-nya adalah 0 sementara
untuk proses induk return code-nya adalah nomor identifikasi proses
(PID) dari turunannya. Ada juga system call exec yang berguna untuk
membuat proses turunan yang terbentuk memiliki instruksi yang berbeda dengan
proses induknya. Dengan kata lain, proses induk dan proses turunan tidak lagi
identik tapi masing-masing punya instruksi berbeda.
Berikut
adalah contoh penggunaan fork() dengan menggunakan bahasa C. Tipe data pid_t
merupakan signed integer yang sebenernya dalam pustaka GNU. Tipe ini
adalah int, fungsinya adalah merepresentasikan PID. Program C diatas
menggambarkan atau mengilustrasikan UNIX system call. Didalam UNIX
Shell akan membaca perintah dari terminal, kemudian perintah tersebut di
fork(), dan menghasilkan proses anak, proses anak inilah yang akan mengeksekusi
perintah dari shell tersebut, sementara proses induk hanya menunggu dengan
menggunakan system call wait() dan mengeksekusi perintah lain saat
proses anak terminasi.
Komentar ini telah dihapus oleh pengarang.
BalasHapus