Anda di halaman 1dari 6

Nama : Andhica Pratama

NIM

: 125150205111004

Kelas : TIF-D
TUGAS SISTEM OPERASI
1. Jelaskan perbedaan mendasar dari proses dan thread!
Jawab :
- Secara informal, proses adalah program yang sedang dieksekusi. Proses
berbeda dengan program. Proses disini maksudnya adalah saat kita
menjalankan suatu program, maka akan terjadi proses sehingga program yg
dijalankan akan terbuka. Ada dua jenis proses, proses berat (heavyweight)
atau biasa dikenal dengan proses tradisional, dan proses ringan atau kadang
disebut thread. Thread, atau kadang-kadang disebut proses ringan
(lightweight), adalah unit dasar dari utilisasi CPU. Di dalamnya terdapat ID
thread, program counter, register, dan stack. Dan saling berbagi dengan
thread lain dalam proses yang sama. atau sebuah pengontrol aliran program
pelaksanaan program dengan menggunakan kendali tunggal atau sebuah
-

alur kontrol dari sebuah proses.


Thread memiliki address space yang sama yang artinya mereka berbagi
variable global, karenanya masing-masing thread dapat saling mengakses
virtual address, membaca, menulis bahkan menghentikan thread lain,
sedangkan proses bisa dimiliki oleh user dan kemungkinan proses tersebut
menunggu atau ditahan proses yang lain, proses selalu dimiliki oleh satu user

sehingga mereka dapat saling bekerja sama tidak saling berbenturan.


Proses Memiliki ruang alamat atau IP address masing-masing sedangkan
threads ruang alamat atau IP address digunakan secara bersama-sama dari

proses yang menciptakannya.


Proses : Dari satu proses dengan proses lainnya harus menggunakan
komunikasi sedangkan threads : Memiliki akses langsung ke segmen data

dari prosesnya.
Proses : memiliki overhead sedangkan Threads : hamper tidak memiliki
overheads.

Proses : Pembentukan proses membutuhkan waktu yang lebih lama


sedangkan threads : Pembentukan thread membutuhkan waktu yang lebih

sedikit.
Proses : Waktu yang dibutuhkan untuk mengakhiri proses lebih lama
sedangkan threads : Waktu yang dibutuhkan untuk mengakhiri thread lebih
sedikit.

2. Pada sistem yang menggunakan threads manakah yang digunakan satu stack
untuk setiap thread atau satu stack untuk setiap proses. Jelaskan!
Jawab :
Satu stack untuk setiap thread, karena dalam satu proses terdiri dari banyak
thread maka thread thread itulah yang perlu di maksukan ke dalam stack untuk
disimpan sebelum dijalankan bukan prosesnya.
3. Kesimpulan apakah yang bisa anda tarik pada Hukum Ahmdals?
Hukum Amdahls (Amdahls Law) adalah Mengidentifikasi keuntungan kinerja dari
menambahkan core tambahan ke aplikasi yang memiliki komponen baik serial
dan paralel. Hukum Amdahl adalah prinsip dasar dalam peningkatan kecepatan
proses suatu computer jika hanya sebagian dari peralatan hardware ataupun
software yang diperbaharui/ditingkatkan kinerjanya. Jadi, jika suatu processor
memiliki jumlah core yang besar, itu tidak akan menjamin bahwa kecepatan
computer akan cepat. Karena nantinya akan dibagi sama jumlah processornya
sehingga akan mendekati dengan 0 jika dibagi dan menjadi

1
s .

Dimana :
S : Serial Proses
N : Jumlah Core
4. Dalam Unix dikelan fork ( ) dan exec ( ). Jelaskan. Berikan penjelasan pula
berkaitan dengan fork ( ) dan exec ( ) dalam hubungannya dengan thread?
Jawab :
fork() berfungsi untuk membuat proses baru sedangkan exec () yang berguna
untuk membuat proses turunan yang terbentuk memiliki instruksi yang berbeda

dengan proses induknya. Terdapat dua kemungkinan dalam sistem UNIX jika
fork dipanggil oleh salah satu thread dalam proses:
- Semua thread diduplikasi.
- Hanya thread yang memanggil fork.
Jika suatu thread memanggil System Call exec maka program yang dispesifikasi
dalam parameter exec, akan mengganti keseluruhan proses termasuk thread.
Penggunaan dua versi dari fork di atas tergantung dari aplikasi. Kalau exec
dipanggil seketika sesudah fork, maka duplikasi seluruh thread tidak dibutuhkan,
karena program yang dispesifikasi dalam parameter exec akan mengganti
seluruh proses. Pada kasus ini cukup hanya mengganti thread yang memanggil
fork. Tetapi jika proses yang terpisah tidak memanggil exec sesudah fork maka
proses yang terpisah tersebut hendaknya menduplikasi seluruh thread.

5. Apakah yang dimaksud dengan race condition. Jelaskan !


Jawab :
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.
6. Apakah yang dimaksud dengan deadlock dan starvation, jelaskan !
Jawab :

Deadlock
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 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.

Starvation
Sedangkan Starvation adalah kondisi yang biasanya terjadi setelah deadlock.
Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah
mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan).
Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat
kesalahan

dalam

sistem

sehingga

terjadi

ketimpangan

dalam

pembagian resouce. Satu proses selalu mendapat resource, sedangkan proses


yang lain tidak pernah mendapatkannya. Ilustrasi starvation tanpa deadlock di
dunia

nyata

dapat

dilihat

Pada

gambar

diatas,

pada

antrian

kanan

terjadi starvation karena resource (jembatan) selalu dipakai oleh antrian kiri, dan
antrian kanan tidak mendapatkan giliran.
7. Apakah yang dimaksud dining philosoper problem, jelaskan!
Jawab :

Dining Philosophers Problem merupakan salah satu masalah klasik dalam


sinkronisasi. Dining Philosohers Problem dapat diilustrasikan sebagai berikut,
terdapat lima orang filsuf yang sedang duduk mengelilingi sebuah meja. Terdapat
lima mangkuk mie di depan masing-masing filsuf dan satu sumpit di antara
masing- masing filsuf. Para filsuf menghabiskan waktu dengan berpikir (ketika
kenyang) dan makan (ketika lapar). Ketika lapar, filsuf akan mengambil dua buah
sumpit (di tangan kiri dan tangan kanan) dan makan. Namun adakalanya, hanya
diambil satu sumpit saja. Jika ada filsuf yang mengambil dua buah sumpit, maka
dua filsuf di samping filsuf yang sedang makan harus menunggu sampai sumpit
ditaruh kembali. Hal ini dapat diimplementasikan dengan wait dan signal.
8. Pada kondisi apa sajakah reader writers problem dapat terjadi, Jelaskan!
Jawab :
Reader writers problem dapat terjadi ketika proses yang mengakses database.
Sebagai contoh sebuah sistem pemesanan sebuah perusahaan penerbangan,
dimana banyak proses berkompetisi berharap untuk membaca (read) dan
menulis (write). Hal ini dapat diterima bahwa banyak proses membaca database
pada saat yang sama, tetapi jika suatu proses sedang menulis database, tidak
boleh ada proses lain yang mengakses database tersebut, termasuk membaca
database tersebut.
9. Bagaimanakah teknik untuk mendeteksi terjadinya deadlock

? berikan

penjelasan!
Jawab :
Deteksi Deadlock dilakukan oleh Lock Monitor Thread, secara periodic
menginisiasi pencarian ke semua tasks di dalam instance database engine.
Proses pencarian dideskripsikan sebagai berikut :
Default interval 5 detik.

Jika Lock Monitor Thread menemukan deadlock, pendeteksi deadlock


memberikan interval dari 5 detik hingga paling kecil 100ms tergantung pada
frekuensi dadlock.
Jika Lock Monitor Thread berhenti mencari deadlock, Database Engine akan
meningkatkan interval antar ppencarian menjadi 5 detik.
Jika deadlock baru saja ditemukan, diasumsikan bahwa thread yang
selanjutnya harus menunggu untuk Lock yang memasuki sikllus Deadlock.
Pasangan Lock pertama menunggu setelah sebuah deadlock telah terdeteksi
akan segera memicu sebuah pencarian deadlock daripada menunggu interval
deteksi deadlock selanjutnya.
10. Bagaimakah teknik untuk melakukan recovery pada saat terjadinya deadlock ?
berikan penjelasan!
Jawab :
- Terminasi Proses
Metode ini akan menghapus proses-proses yang terlibat pada kondisi
deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang
termasuk dalam metode ini adalah sebagai berikut:
Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini
terlalu mahal).
Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock
dapat diatasi (memakan banyak waktu).
Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk
-

selesai, dan kedalaman dari rollback.


Resources Preemption Metode ini lebih menekankan kepada bagaimana
menghambat suatu proses dan sumber daya, agar tidak terjebak pada unsafe
condition. Beberapa langkahnya, yaitu:
Pilih salah satu proses dan sumber daya yang akan di-preempt.
Rollback ke safe state yang sebelumnya telah terjadi.
Mencegah suatu proses agar tidak terjebak pada starvation karena
metode ini.

Anda mungkin juga menyukai