Anda di halaman 1dari 6

LAPORAN PENDAHULUAN

PRAKTIKUM SISTEM OPERASI

SEMESTER GASAL TAHUN AKADEMIK 2010 - 2011

MODUL 3

Process dan Thread

Oleh:

Kelompok 80 :
Muhammad Arizona F. ( 5108100021)
Fenny Delucia Radhityanti ( 5109100010 )

Asisten:

Putu Gede Indra Setyadi

5107100049

LABORATORIUM ARSITEKTUR DAN JARINGAN KOMPUTER

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INFORMASI

INSTITUT TEKNOLOGI SEPULUH NOPEMBER

2010
SOAL PENDAHULUAN

1. Sebutkan dan jelaskan faktor-faktor pembeda antara proses dan thread !

a. Perbedaannnya terletak pada saat pembuatannya. Thread baru dibuat dengan system call
clone yang membuat proses baru dengan identitas sendiri, namun diizinkan untuk berbagi
struktur data dengan induknya. Selain itu jika terdapat dua buah process dan dua buah
thread, maka jika process memiliki resource sendiri-sendiri, sedangkan thread hanya
memiliki satu resource induk selain itu perbedaan antara proses dengan thread tunggal
dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak
dapat mengerjakan lebih dari satu tugas pada satu satuan waktu Karakter Unit of resource
ownership dapat ditujukan ke process atau tugas. Hal ini karena: Sebuah process
memiliki alamat virtual yang membawa process image dan memiliki protected access ke
prosesor, proses yang lain dan I/O resources. Sedangkan karakter Unit of Dispatching
dapat ditujukan kepada thread karena thread memiliki execution state menyimpan isinya
sendiri meskipun thread tidak running. Memiliki execution stack dan beberapa thread
memiliki kemampuan menyimpan lokal variabel. Thread juga memiliki akses ke ruang
alamat
2. Jelaskan tentang race condition dan beri contoh studi kasusnya !

Race condition adalah suatu kondisi dimana dua atau lebih proses mengakses shared
memory/sumber daya pada saat yang bersamaan dan hasil akhir dari data tersebut tergantung dari
proses mana yang terakhir selesai dieksekusi sehingga hasil akhirnya terkadang tidak sesuai
dengan yang dikehendaki

3. Jelaskan tentang deadlock dan berikan contohnya !

Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang
lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling
menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock
adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang
hanya boleh dirubah oleh satu proses saja dalam satu waktu.

Di kehidupan nyata, deadlock dapat digambarkan dalam gambar berikut. Pada gambar
diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan menyeberangi jembatan.
Dalam kasus diatas, antrian di sebelah kiri menunggu antrian kanan untuk mengosongkan
jembatan (resource), begitu juga dengan antrian kanan. Akhirnya tidak terjadi kemajuan
dalam kerja dua antrian tersebut. Misal ada proses A mempunyai resource X, proses B
mempunyai resource Y. Kemudian kedua proses ini dijalankan bersama, proses A
memerlukan resource Y dan proses B memerlukan resource X, tetapi kedua proses tidak
akan memberikan resource yang dimiliki sebelum proses dirinya sendiri selesai dilakukan.
Sehingga akan terjadi tunggu-menunggu.
4. Jelaskan tentang multithread dan berikan contoh pengaplikasian multithread !

5. Jelaskan apa yang dimaksud dengan mutex, sebutkan juga perbedaan dan persamaanya jika
dibandingkan dengan semaphore !

Mekanisme dasar sinkronisasi adalah pengunci (lock). Semua mekanisme yang lain dirancang-
bangun dengan menggunakan mutex. Pengunci diperlukan untuk menjaga konsistensi data ketika
beberapa thread dapat mengakses atau memodifikasi data pada saat yang sama. Karena kernel
Solaris bersifat pre-emptive, maka pengunci diperlukan meskipun di mesin dengan prosesor
tunggal.

6. Jelaskan apa yang dimaksud dari :

pthread_t, pthread_mutex_t, pthread_create, pthread_detach, pthread_cancel,

pthread_mutex_lock, pthread_mutex_unlock, pthread_mutex_destroy.

: pthread_create
Membuat suatu Thread baru dan langsung dieksekusi.Saat memanggil fungsi ini kita
harus mendefinisikan sebuah atribut objek dari thread tersebut,jika tidak maka atributnya
akan diset default.
: pthread_cancel
Saat fungsi ini dipanggil, request akan dibatalkan.tetapi Thread masih
running.pemangggilan fungsi ini gagal jika ID Thread yang akan dicancel tidak valid.
:pthread_t
Variable yang menyimpan thread ID dari suatu thread yang baru.
7. Jelaskan permodelan thread dilihat dari levelnya

a. Kernel Level
 Pada aplikasi tidak terdapat kode manajemen thread, melainkan API
sebagai fasilitas thread kernel.
 Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadwalan,
dan manajeman thread dilakukan oleh kernel pada kernel space . Karena
pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan
kernel thread lebih lambat dibandingkan user thread. Keuntungannya adalah
thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking
system call maka kernel bisa menjadwalkan thread lain di aplikasi untuk
melakukan eksekusi. Keuntungan lainnya adalah padalingkungan multiprocessor ,
kernel bisa menjadwal thread-thread pada processor yang berbeda.

b. User Level

 User thread didukung diatas kernel dan diimplementasi oleh thread library pada
user level. Library meneyediakan fasilitas untuk pembuatan thread, penjadwalan
thread, dan manajemen thread tanpa dukungan dari kernel. Karena kernel tidak
menyadari user-level thread maka semua pembuatan dan penjadwalan thread
dilakukan di user space tanpa intervensi dari kernel. Oleh karena itu, user –level
thread biasanya cepat untuk dibuat dan diatur. Tetapi user thread mempunyai
kelemahan yaitu apabila kernelnya merupakan thread tunggal maka apabila salah
satu user-level thread menjalankan blocking system call maka akan
mengakibatkan seluruh proses diblok walaupun ada thread lain yang bisa jalan
dalam aplikasi tersebut
c. Hybrid

8. Jelaskan gambar dibawah ini :

9. Salah satu masalah lain dalam lock file adalah livelock, jelaskan mengenai apa itu livelock
Livelock adalah suatu situasi di mana beberapa tahap kritis dari suatu tugas tidak mampu
diselesaikan pengolahan nya. Ini adalah disebabkan pengguna (user) dari tugas tertentu ini
secara terus-menerus membuat pekerjaan untuk dikerjakan setelah pada tahap yang kritis
dari tugas permintaan layanan diberikan untuk nya tetapi sebelum tugas yang diberikan
dapat dibersihkan dari antrian permintaan nya. Livelock berbeda dengan deadlock dalam arti
bahwa proses tidaklah dihalangi atau menunggu untuk sesuatu pekerjaan tetapi mempunyai
hampir tanpa batas jumlah pekerjaan mendesak untuk dikerjakan dan tidak pernah dapat
menyusul ketinggalan atau menangkap tugas secara keseluruhan. Suatu contoh dari livelock
adalah interupsi yang diberikan ke suatu sistem operasi yang dikemudikan. Jika terlalu
banyak interupsi tiba di sistem operasi kernel dan kemudian melanjut untuk membombardir
kernel, sistem operasi tidak akan mampu benar-benar melayani yang manapun interupsi
yang diminta karena akan menghabiskan semua dari waktu nya untuk memproses
penerimaan interupsi. Dengan kata lain, sistem operasi menjadi sangat sibuk menerima
interupsi permintaan sehingga ia tidak bisa melayani yang manapun permintaan tersebut.

10. coming soon

Anda mungkin juga menyukai