Anda di halaman 1dari 28

Laporan Praktikum

Sistem Operasi
Penjadwalan CPU

Nama: Pidel Selater Sitorus


NIM: 13322038
Program Studi: D3 Teknologi Komputer

INSTITUT TEKNOLOGI DEL


FAKULTAS VOKASI
Sistem Operasi

Minggu/Sesi : XI/2 dan 3


Kode Mata Kuliah : 1031202, 1041202
Nama Mata Kuliah : SISTEM OPERASI
Panduan Kuliah : Panduan ini dibuat untuk mengarahkan mahasiswa memahami mengenai
Deadlock untuk membantu mereka melaksanakan Pembelajaran Jarak Jauh
(PJJ)
Setoran : Laporan Materi Deadlock dikirimkan dalam bentuk PDF dengan aturan
penamaan file adalah NIM_Laporan_Materi_Deadlock
Batas Waktu : H+3
Setoran
Tujuan : 1. Mampu mendefinisikan model sistem deadlock
2. Mampu menjelaskan karakterisasi kondisi-kondisi yang menyebabkan
deadlock
3. Mampu menjelaskan penggunaan resource allocation graph untuk
pengenalan deadlock
4. Mampu mengelompokkan metode penanganan deadlock ke dalam metode
pencegahan (prevention) dan penghindaran (avoidance)
5. Mampu menjabarkan algorithma-algorithma untuk penghindaran
deadlock
6. Mampu menjelaskan perbedaan 2 teknik pemulihan deadlock yakni:
termination dan preemption.
7. Mampu menjelaskan algorithma-algorithma untuk deteksi deadlock
8. Mampu menjelaskan perbedaan 2 teknik pemulihan deadlock yakni:
termination dan preemption.
Petunjuk

1. Anda dapat mengerjakan tugas ini secara individu.


2. Mencontoh pekerjaan dari orang lain akan dianggap plagiarisme dan anda akan ditindak
sesuai dengan sanksi akademik yang berlaku di IT Del atau sesuai dengan kebijakan saya dengan
memberikan nilai 0.
3. Jawaban diketikkan dalam bentuk laporan mengikuti template dan setiap soal harus ditulis secara
berurutan.
4. Keterlambatan menyerahkan laporan tidak ditolerir dengan alasan apapun. Oleh karena itu, laporan
harus dikumpul tepat waktu.

Referensi

 Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts, 9th edition, Chapter 1 and 2,
John Wiley & Sons, Inc., 2013.
Deadlock
1. [Hal. 306] Jelaskan mengapa manajemen memori diperlukan?
Jawab: Manajemen memori diperlukan dalam sistem komputer untuk mengatur
penggunaan memori secara efisien. Memori adalah komponen penting dalam sebuah
sistem komputer, dan digunakan untuk menyimpan program dan data yang sedang
digunakan oleh sistem operasi dan aplikasi yang berjalan di atasnya.

Manajemen memori diperlukan karena jumlah memori pada sebuah sistem komputer
terbatas, dan berbagai aplikasi yang berjalan di atas sistem operasi memerlukan alokasi
memori yang berbeda-beda. Jika manajemen memori tidak dilakukan dengan baik, maka
bisa terjadi masalah seperti kelebihan penggunaan memori, yang dapat menyebabkan
sistem menjadi tidak responsif atau bahkan crash.

Dalam manajemen memori, sistem operasi harus mengalokasikan memori sesuai


kebutuhan dari setiap program, mengatur memori yang sedang tidak digunakan agar bisa
digunakan oleh program lain, dan menghapus memori yang tidak digunakan sama sekali.
Hal ini memungkinkan setiap program untuk menggunakan memori sesuai kebutuhannya,
dan mencegah program-program yang berjalan di sistem operasi mengganggu satu sama
lain.

Secara keseluruhan, manajemen memori sangat penting dalam sistem komputer untuk
memastikan efisiensi dan stabilitas sistem, serta untuk memastikan bahwa program dapat
berjalan secara efektif.
2. [Hal. 307] Jelaskan istilah berikut:
1. Frame
Jawab: Frame adalah istilah dalam komunikasi data yang mengacu pada unit data yang
dikirimkan melalui jaringan komputer atau media transmisi lainnya.
2. Page
Jawab: Page adalah halaman web atau dokumen yang dapat diakses di internet
3. Segment
Jawab: Segment adalah istilah dalam protokol jaringan yang mengacu pada unit data
yang dibentuk dari layer transport dalam stack protokol TCP/IP
3. [Hal. 307] Jelaskan pada situasi bagaimanakah relocate (relokasi) dilakukan?
Jawab: Proses relokasi dilakukan dengan menggunakan teknik yang disebut dengan address
translation atau penerjemahan alamat. Teknik ini melibatkan penggunaan tabel penerjemahan
alamat yang menyimpan informasi tentang lokasi memori yang sedang digunakan oleh setiap
program atau proses. Ketika program atau proses tersebut membutuhkan lebih banyak ruang
dalam memori, tabel ini akan diupdate untuk menunjukkan lokasi baru di mana program atau
proses tersebut dipindahkan.

Setelah proses relokasi selesai, program atau proses tersebut dapat melanjutkan operasinya
seperti biasa. Namun, proses relokasi dapat mempengaruhi kinerja sistem, terutama jika
program atau proses tersebut sering berpindah-pindah lokasi dalam memori. Oleh karena itu,
proses relokasi harus dilakukan dengan hati-hati dan hanya saat diperlukan.

4. Dari gambar ilustrasi di bawah, jelaskan mengapa gambar A disebut berpotensi terjadi
deadlock sedangkan gambar B telah terjadi deadlock.

jawab: Pada Gambar (a) : Pada gambar ini disebutkan bahwa akan berpotensi menjadi
deadlock dikarenakan mobil tersebut ingin melewati persimpangan secara bersamaan
sehingga bisa menyebabkan deadlock
Pada Gambar (b) : Pada gambar (B) dikatakan deadlock dikarenakan mobil tersebut secara
bersamaan sudah sampai di persimpangan dan mengakibatkan mobil tersebut terhalang
jalannya oleh mobil lain. Sehingga mobil tersebut harus menunggu mobil lain berjalan
supaya jalannya tidak terhalangi
5. [Hal. 316]Sebutkan contoh sumberdaya yang dapat dikonsumsi oleh proses, dan
mengapa deadlock dapat terjadi pada saat proses-proses akan mengkonsumsi sumberdaya
tersebut.
Jawab: Contoh sumberdaya yang dapat dikonsumsi oleh proses termasuk memori, CPU,
jaringan, input/output (I/O) device, dan database. Setiap sumber daya memiliki atribut atau
karakteristik yang berbeda, seperti kapasitas, kecepatan akses, dan lain-lain, yang perlu
diperhatikan dalam manajemen sumber daya.

Deadlock dapat terjadi pada saat proses-proses akan mengkonsumsi sumberdaya tersebut
karena adanya situasi di mana setiap proses menunggu sumber daya yang dipegang oleh
proses lain yang juga membutuhkan sumber daya yang dimiliki oleh proses pertama.
Contohnya, jika dua proses A dan B membutuhkan sumber daya yang sama, misalnya
CPU, dan keduanya memegang sumber daya yang berbeda, misalnya memori dan disk,
maka dapat terjadi deadlock jika keduanya menunggu sumber daya yang dimiliki oleh
proses lain. Dalam hal ini, proses A menunggu sumber daya yang dimiliki oleh proses B
sementara proses B menunggu sumber daya yang dimiliki oleh proses A. Akibatnya, kedua
proses akan terjebak dalam situasi yang tidak bisa bergerak maju, sehingga menghambat
kinerja sistem secara keseluruhan.

6. [Hal. 316]Jelaskan 3 (tiga) operasi yang harus dilakukan oleh proses ketika
mengkonsumsi sumberdaya
1. Request
Jawab: proses meminta sumber daya yang diperlukan untuk menyelesaikan tugasnya
2. Use
Jawab: setelah sumber daya dialokasikan ke proses, proses dapat menggunakannya
untuk menyelesaikan tugasnya. Proses akan menggunakan sumber daya ini selama
dibutuhkan, dan dapat melakukan operasi yang diperlukan, seperti membaca atau
menulis data ke disk
3. Release
Jawab: Release (melepaskan): setelah proses selesai menggunakan sumber daya,
proses harus melepaskannya agar sumber daya tersebut dapat digunakan oleh proses
lain.

7. [Hal. 316]Sebutkan contoh system call yang dapat diterapkan untuk ketiga
operasi yang disebutkan pada No.4
Jawab: Contohnya adalah, request ( ) dan release ( ) device, open ( ) dan close ( ) file, dan
allocate ( ) dan free ( ) memory system calls.

8. [Hal. 316]Sebuah sistem memiliki sumberdaya sebuah printer dan sebuah DVD drive.
Semisalnya, proses 𝑃𝑖menggunakan DVD dan proses 𝑃𝑗 menggunakan printer. Jika
𝑃𝑖meminta untuk mendapatkan printer dan 𝑃𝑗 meminta untuk menggunakan DVD
drive, apakah akan terjadi deadlock? Jelaskan mengapa demikian?
Jawab: Jelas akan terjadi deadlock, karena pada situasi tersebut kedua proses harus ter-block
dan menunggu secara terus-menerus. Dan seperti yang kita ketahui terkadang proses
menunggu tidak pernah lagi dapat mengubah keadaan karena sumber daya yang diminta
dimiliki oleh proses menunggu lainnya.

9. [Hal. 319]Jelaskan kondisi yang dapat menyebabkan deadlock berikut:


1. Mutual exclusion
Jawab: Deadlock dapat terjadi ketika dua atau lebih proses membutuhkan sumber daya
yang sama dan sumber daya tersebut tidak dapat digunakan secara bersamaan atau di-
share antara proses tersebut. Ketika proses pertama sudah memegang sumber daya,
proses kedua harus menunggu hingga sumber daya tersebut dilepaskan. Namun, jika
proses pertama juga membutuhkan sumber daya yang dimiliki oleh proses kedua, maka
terjadilah deadlock.
2. Hold and wait
Jawab: Deadlock dapat terjadi ketika suatu proses memegang suatu sumber daya dan
menunggu sumber daya lainnya, sementara sumber daya yang sedang digunakan tidak
dapat digunakan oleh proses lainnya. Dalam hal ini, proses tersebut menahan sumber
daya yang dibutuhkan oleh proses lain dan menunggu untuk memperoleh sumber daya
lainnya yang dibutuhkannya. Ini dapat mengakibatkan situasi di mana beberapa proses
menunggu satu sama lain dan tidak dapat melanjutkan eksekusi, terjadi deadlock.
3. No preemption
Jawab: Deadlock dapat terjadi ketika sumber daya tidak dapat dipaksa untuk dilepaskan
dari proses yang memilikinya, bahkan jika proses lain membutuhkan sumber daya
tersebut. Dalam situasi ini, jika suatu proses memegang suatu sumber daya dan tidak
ingin melepaskannya, proses lain yang membutuhkan sumber daya tersebut tidak dapat
mengambil sumber daya tersebut dan akan menunggu tanpa batas waktu. Hal ini dapat
menyebabkan deadlock karena tidak ada proses yang dapat bergerak maju atau
mengambil sumber daya yang dibutuhkannya untuk menyelesaikan eksekusinya.
4. Circular wait
Jawab: Kondisi ini dapat menyebabkan deadlock, karena tidak ada proses yang dapat
melepaskan sumber daya yang dibutuhkan oleh proses lainnya, sehingga tidak ada
proses yang dapat menyelesaikan eksekusinya.

10. [Hal. 319-322]Deadlock dapat digambarkan dengan menggunakan resource-


allocation graph. Pada graf ini proses dan sumberdaya digambarkan sebagai vertices
V sedangkan direksi atau arah antara proses dan sumberdaya ditunjukkan sebagai edge
E. Arah atau direksi ketika sebuah proses meminta untuk konsumsi sumberdaya
digambarkan pada bagian (a) disebut juga dengan istilah request edge, sedangkan arah
ketika sebuah sumberdaya sudah dialokasikan kepada proses yang meminta
digambarkan pada bagian
(b) disebut juga dengan istilah assignment edge.

Request Edge Assignment Edge


𝑃1 𝑅𝑎 𝑃1 𝑅𝑎

Dari penjelasan diatas jawablah pertanyaan berikut.


Vertices
 Resources {𝑅𝑖, … … …}
 Proses {𝑃𝑖 , … … …}
Edge {𝑃1→ 𝑅1, … … … …}

Identifikasilah gambar di bawah ini, manakah yang menyebabkan deadlock dan


mana yang tidak. Berikan penjelasan terhadap pilihan Anda.
Jawab:

ertices
● Resources 1, 𝑅2, 𝑅3, 𝑅4}

● Proses 1,P2,P3}
𝑃 → 𝑅1, 𝑃2 → 𝑅3, 𝑅1 → 𝑃2, 𝑅2
→ 𝑃2, 𝑅2 → 𝑃1, 𝑅3 → 𝑃3}

Edge

Status Proses:
1. Proses P1 membawa satu anggota tipe sumber daya R2 dan menunggu satu anggota tipe
sumber daya R1.
2. Proses P2 membawa satu anggota R1 dan R2 dan menunggu satu anggota tipe sumber daya R3.
3. Proses P3 membawa satu anggota R3.
Gambar 1

ertices
● Resources 𝑅𝑎, 𝑅𝑏}

dge ● Proses 1,P2}


𝑏 → 𝑃1, 𝑃1 → 𝑅𝑎, 𝑅𝑎 → 𝑃2, 𝑃2 → 𝑅𝑏

Status Proses:
1. Proses P1 membawa satu anggota tipe sumber daya Rb dan menunggu satu
anggota tipe sumber daya Ra.
2. Proses P2 membawa satu anggota Ra dan R2 dan menunggu satu anggota tipe
sumber daya Rb.
● Gambar tersebut akan mengakibatkan Deadlock karena siklus tersebut tidak dapat
diputuskan,seperti yang kita ketahui jika tidak ada proses yang dapat melepaskan
resource atau memutuskan siklus untuk dialokasikan ke proses lainnya maka akan
mengakibatkan deadlock.

Gambar 2
ertices
● Resources 𝑅𝑎, 𝑅𝑏}

dge ● Proses 1,P2}


𝑏 → 𝑃1, 𝑃1 → 𝑅𝑎, 𝑅𝑎 → 𝑃2, 𝑃2 → 𝑅𝑏
Status Proses:
1. Proses P1 membawa satu anggota tipe sumber daya Rb dan menunggu satu
anggota tipe sumber daya Ra.
2. Proses P2 membawa satu anggota Ra dan R2 dan menunggu satu anggota tipe
sumber daya Rb.
● Gambar tersebut akan mengakibatkan Deadlock karena siklus tersebut tidak dapat
diputuskan,seperti yang kita ketahui jika tidak ada proses yang dapat melepaskan
resource atau memutuskan siklus untuk dialokasikan ke proses lainnya maka akan
mengakibatkan deadlock.

● Proses 1,P2,P3,P4}
1 → 𝑅1, 𝑅1 → 𝑃2, 𝑅1 → 𝑃3, 𝑃3 →
𝑅2, 𝑅2 → 𝑃4, 𝑅2 → 𝑃1
ertices
● Resources 𝑅 1, 𝑅2}

Edge

Jawab: Deadlock prevention adalah strategi untuk mencegah deadlock terjadi sejak
awal dengan menghilangkan salah satu dari empat kondisi yang diperlukan untuk
deadlock terjadi. Keempat kondisi tersebut adalah mutual exclusion, hold and wait, no
preemption, dan circular wait. Salah satu cara yang umum digunakan dalam deadlock
prevention adalah dengan menjamin bahwa setiap proses mendapatkan semua sumber
daya yang dibutuhkan pada saat yang sama, sehingga tidak ada satu pun sumber daya
yang ditahan oleh proses lain. Metode lainnya adalah dengan memaksa setiap proses
untuk melepaskan semua sumber daya yang sudah dipegang sebelum meminta sumber
daya baru.
5. Deadlock avoidance
Jawab: Deadlock avoidance adalah strategi untuk mencegah deadlock dengan
memantau aktivitas sistem secara real-time dan membuat keputusan berdasarkan
informasi ini untuk menghindari kondisi yang dapat menyebabkan deadlock. Algoritma
Banker's Algorithm merupakan salah satu contoh dari strategi deadlock avoidance.
Algoritma ini memastikan bahwa sistem tidak masuk ke dalam kondisi deadlock
dengan memperhitungkan jumlah sumber daya yang tersedia, jumlah sumber daya yang
diminta oleh setiap proses, dan sumber daya yang tersedia pada waktu tertentu. Jika
pengambilan keputusan dilakukan dengan benar, algoritma ini dapat menghindari
deadlock tanpa membatasi akses ke sumber daya yang dibutuhkan oleh proses.

12. [Hal. 327]Deadlock example


Perhatikan fungsi di bawah yang telah menggunakan lock ordering.

Jawab:
a. Jika terdapat dua thread menjalankan fungsi transaction() diatas secara simultan.
 Thread-1: transaction(checking_account, savings_account, 25);
 Thread-2: transaction(savings_account, checking_account, 50);
a. Jawab: Artinya, satu utas meminta,
Thread-1: transaction(checking_account, savings_account, 25);
dan yang lain mungkin memohon
Thread-2: transaction(savings_account, checking_account, 50);

b. Apakah akan terjadi deadlock? Buktikan pada bagian mana deadlock terjadi
(ikuti alur kode program di atas).
Jawab: untuk menggunakan program saksi yang akan memberi tahu pengguna
bahwa kebuntuan telah terjadi, tetapi harus ada solusi yang lebih baik yang
dapat diterapkan dengan memodifikasi kode.

c. Jika deadlock terjadi bagaimana cara mengatasinya? Berikan pembuktian [hint:


Hal 337].
Jawab: Secara umum terdapat 4 cara untuk menangani keadaan
deadlock, yaitu:
1. Pengabaian. Maksud dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock
dan pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan cara ini dikenal
istilah ostrich algorithm. Pelaksanaan algoritma ini adalah sistem tidak mendeteksi adanya
deadlock dan secara otomatis mematikan proses atau program yang mengalami deadlock.
Kebanyakan sistem operasi yang ada mengadaptasi cara ini untuk menangani keadaan
deadlock. Cara penanganan dengan mengabaikan deadlock banyak dipilih karena kasus
deadlock tersebut jarang terjadi dan relatif rumit dan kompleks untuk diselesaikan.
2. Pencegahan. Penanganan ini dengan cara mencegah terjadinya salah
satu karakteristik deadlock. Penanganan ini dilaksanakan pada
saat deadlock belum terjadi pada sistem. Intinya memastikan agar
sistem tidak akan pernah berada pada kondisi deadlock.
3. Penghindaran. Menghindari keadaan deadlock. Bagian yang perlu
diperhatikan oleh pembaca adalah bahwa antara pencegahan
dan penghindaran adalah dua hal yang berbeda. Pencegahan
lebih kepada mencegah salah satu dari empat karakteristik
deadlock terjadi, sehingga deadlock pun tidak terjadi.
Sedangkan penghindaran adalah memprediksi apakah tindakan
yang diambil sistem, dalam kaitannya dengan
permintaan proses akan sumber daya, dapat mengakibatkan
terjadi deadlock.

Pendeteksian dan Pemulihan. Pada sistem yang sedang berada pada kondisi
deadlock, tindakan yang harus diambil adalah tindakan yang bersifat represif.
Tindakan tersebut adalah dengan mendeteksi adanya deadlock, kemudian
memulihkan kembali sistem. Proses pendeteksian akan menghasilkan informasi
apakah sistem sedang deadlock atau tidak serta proses mana yang mengalami
deadlock.

13. [Hal. 328]Jelaskan dengan memberi contoh pada kondisi apakah safe state dan unsafe state
terjadi?
Jawab: Safe state diartikan dengan banyaknya sumberdaya yang sudah dialokasikan terhadap
masingmasing proses. Sedangkan Unsafe state diartikan sebagai banyaknya sumberdaya yang
belum dialokasikan kepada masing-masing proses, sehingga masih ada sumberdaya yang
digunakan oleh beberapa proses.
Untuk memberikan contoh maka akan diberikan sebuah soal:
Proses Jumlah Max Resouce yang
Resource dibutuhkan
yang
Dialokasikan
A 2 10

B 1 3

C 3 7
Jumlah

Tentukan pengalokasian agar tidak terjadi deadlock!


dengan sisa Resource yang ada yaitu 10-6=4
🡺 Yang pertama R akan dialokasikan ke A. Sehingga akan mendapat hasil seperti berikut:

Proses Jumlah Resource yang Max Resouce yang


Dialokasikan dibutuhkan
A 2+4 10

B 1 3

C 3 7
Jumlah 10

Sisa 10-10=0 (tidak ada sisa sumberdaya yang dapat digunakan)


Dari pengalokasian diatas, ternyata mendapatkan hasil unsafe, jadi artinya terjadi deadlock
apabila proses A dialokasikan pertama. Dimana proses A tidak pernah selesai untuk diproses dan
proses B&C menunggu terus menerus. Maka dengan itu, kita akan mencari proses lain, yang
akan di proses lebih awal sehingga tidak terjadi deadlock.

Melihat hal di atas, kemudian merubah susunan pengalokasian proses, dimana yang dialokasikan
pertama adalah proses B. Pada awal siklus akan diperoleh hasil seperti berikut:
Proses Jumlah Resource yang Max Resouce yang
Dialokasikan dibutuhkan
A 2 10

B 1+2 3

C 3 7
Jumlah 8
Sisa 10-8=2
Diakhir siklus akan diperoleh hasil seperti berikut:

Proses Jumlah Resource yang Max Resouce yang


Dialokasikan dibutuhkan

A 2 10

B 0 0

C 3 7
Jumlah 5

Sisa 10-5=5 (terdapat 5 sumberdaya yang bisa digunakan/safe state)


Setelah pengalokasian ke proses B, akan dilanjutkan ke pengalokasian ke proses C. Dimana
diawal proses akan diperoleh hasil seperti berikut:
Sis
a 10-2=8 (terdapat 8 sumberdaya yang bisa digunakan/ safe state)
Dan yang terakhir, pengalokasian dilakukan ke proses A. Sehingga di awal siklus didapat hasil
seperti berikut:

Proses Jumlah Resource yang Max Resouce yang


Dialokasikan dibutuhkan
A 2 +8=10 10

B 0 0

C 0 0
Jumlah 10

Sisa 10-10=0
Diakhir siklus akan diperoleh hasil seperti berikut:

Proses Jumlah Resource yang Max Resouce yang


Dialokasikan dibutuhkan
A 2 +8=10 10

B 0 0

C 0 0
Jumlah 10

Sisa 10-0=10 (Terdapat 10 sumberdaya yang bisa digunakan dan sekaligus tidak ada proses yang
akan diproses lagi). Dengan ini tidak terjadi deadlock.

14. [Hal. 329-332]Jelaskan kedua algoritma di bawah yang digunakan pada deadlock avoidance:

a. Resource allocation-graph
Jawab: pendeskripsian deadlock dengan grafik terarah
b. Resource allocation-graph
Jawab: metode untuk menghindari deadlock dengan memodelkan sebuah bank di kota kecil
yang berurusan dengan sekumpulan yang memohon kredit
c. Banker’s algorithm
Jawab: Banker's Algorithm adalah salah satu algoritma yang digunakan untuk menghindari
terjadinya deadlock dalam sistem komputer yang menggunakan alokasi sumber daya secara
dinamis.
15. [Hal. 329-332]Jelaskan mengapa gambar di bawah merupakan unsafe state pada Resource

Allocation-Graph.

Jawab: Untuk menggambarkan algoritma ini, perhatikan resource allocation graph. Misalnya
P2 meminta R2. Meskipun R2 bebas, tetapi tidak dapat dialokasikan untuk P2, karena akan
menyebabkan siklus pada graph. Siklus menandakan sistem dalam state tak aman. Jika P1
meminta R2 dan P2 meminta R1, maka terjadi deadlock.
16. [Hal. 329-332]Dengan menggunakan Banker’s Algorithm, tentukan urutan proses yang
akan dieksekusi sehingga tetap mencapai safe state (tuliskan caranya dengan mengikuti
algoritma Safety pada slide halaman 7.29). Carilah nilai dari available, need, dan
urutan proses. Spesifikasi dari keempat proses sebagai berikut:

Resource vector:

𝑅 𝑅 𝑅
1 2 3
9 3 6

Allocation Max Available


𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3

𝑃1 1 0 0 3 2 2 …. …. ….

𝑃2 6 1 2 6 1 3

𝑃3 2 1 1 3 1 4

𝑃4 0 0 2 4 2 2

Nee
d
𝑅1 𝑅2 𝑅3

𝑃1 ... ... …

𝑃2 … … …

𝑃3 … … …

𝑃4 … … …

Urutan proses yang mencapai safe state:

<…, …., …., ….>


Jawab:
Allocation Max Available
𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3
𝑃1 1 0 0 3 2 2 0 1 1
𝑃2 6 1 2 6 1 3
𝑃3 2 1 1 3 1 4
𝑃4 0 0 2 4 2 2

Need
𝑅1 𝑅2 𝑅3
𝑃1 2 2 2
𝑃2 0 0 1
𝑃3 1 0 3
𝑃4 4 2 0

Urutan Proses : <P2,P3,P4,P1>

17. [Hal. 329-332] Merujuk pada soal No.13, semisalnya 𝑃1 meminta resource dengan detail
𝑅1, 𝑅2, 𝑅3 = (0, 1, 0). Dengan menggunakan Banker’s Algorithm, tunjukkan apakah
permintaan dari 𝑃1 dapat diberikan atau tidak (tuliskan caranya dengan mengikuti algoritma
Resource- Request pada slide halaman 7.30). Kemudian tentukan urutan proses yang akan
dieksekusi sehingga tetap mencapai safe state (tuliskan caranya dengan mengikuti algoritma
Safety pada slide halaman 7.29). Carilah nilai dari available, need, available dan urutan proses

Allocation Nee Available


d
𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3

𝑃1 … … … ... ... … …. …. ….

𝑃2 6 1 2 … … …

𝑃3 2 1 1 … … …

𝑃4 0 0 2 … … …

Urutan proses yang mencapai safe state:


<…, …., …., ….>

Jawab:

Allocation Need Available


𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3
𝑃1 0 1 0 3 1 2 1 0 1
𝑃2 6 1 2 0 0 1y
𝑃3 2 1 1 1 0 3y

𝑃4 0 0 2 4 2 0y

Urutan Proses : <P2,P3,P4,P1>


18. [Hal. 329-332] Merujuk pada soal No. 4, jika 𝑃4 meminta resource dengan detail 𝑅1, 𝑅2, 𝑅3 =
(4, 3, 5) apakah masih mencapai safe state? Jika, tidak apakah proses lainnya masih dapat
dilanjutkan?
Jawab: Tidak dapat mencapai safe state namun dapat melakukan proses lainnya

19. [Hal. 333-336]Jika sebuah sistem tidak menggunakan algoritma deadlock-prevention


atau deadlock avoidance, kemungkinan akan terjadi deadlock. Jika demikian, langkah
yang dilakukan adalah?
Jawab: Di lingkungan ini, sistem dapat menyediakan:
• Algoritme yang memeriksa keadaan sistem untuk menentukan apakah kebuntuan telah
terjadi
• Algoritma untuk memulihkan dari kebuntuan, Lalu menggunakan detection algorithm
yang akan memberitahu sistem mengenai proses mana saja yang terkena deadlock. Setelah
diketahui proses mana saja yang terlibat dalam deadlock, selanjutnya adalah dengan
menjalankan mekanisme pemulihan sistem yang akan dibahas pada bagian selanjutnya

20. [Hal. 333-336]Pada deadlock detection, jika setiap sumberdaya (resource) hanya
memiliki satu instance, maka deadlock dapat dideteksi dengan menggunakan algoritma
graf wait-for. Graf ini diperoleh dari algoritma graf resource-allocation dengan
menghilangkan node sumberdaya dan menggabungkan edge yang bersesuaian.
Berdasarkan graf Resource- allocation pada gambar bagian (a), hasilkanlah graf wait-
for.
21. [Hal. 333-336]Merujuk pada soal No.17, apakah terdeteksi deadlock? Jika ya,
tunjukkan dan jelaskan pada bagian mana.
Jawab: Mendeteksi dan Memperbaiki, Caranya ialah dengan cara mendeteksi jika terjadi
deadlock pada suatu proses maka dideteksi sistem mana yang terlibat di dalamnya. Setelah
diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan
menjadikan sistem berjalan kembali. Jika sebuah sistem tidak memastikan deadlock akan
terjadi, dan juga tidak didukung dengan pendeteksian deadlock serta pencegahannya, maka kita
akan sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance sistem
karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga
terganggu. Akhirnya sistem akan berhenti dan harus direstart.
22. [Hal. 333-336]Dengan menggunakan Banker’s Algorithm untuk mendeteksi deadlock
pada slide hal 7.38 dan 7.39. Tentukan urutan proses yang akan dieksekusi sehingga
tetap mencapai tidak ada deadlock. Spesifikasi dari keempat proses sebagai berikut:
Resource vector:

𝑅 𝑅 𝑅
1 2 3
7 2 6

Allocation Request Available


𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3

𝑃1 2 0 0 2 0 2 …. …. ….

𝑃2 0 1 0 0 0 0

𝑃3 3 0 3 0 0 0

𝑃4 0 0 2 0 0 2

𝑃5 2 1 1 1 0 0

Urutan proses yang tidak deadlock:

<…, …., …., ….>


Jawab:
Allocation Request Available
𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3 𝑅1 𝑅2 𝑅3
𝑃1
𝑃2
𝑃3
𝑃4
𝑃5

Urutan proses yang tidak di deadlock :


<P2,P3>

Laporan Praktikum Sistem Operasi 25


23. [Hal. 333-336]Merujuk pada soal No. 19, jika 𝑷𝟐 meminta resource
dengan detail
𝑅1, 𝑅2, 𝑅3 = (0, 0, 1) , apakah teridentifikasi deadlock? Jika, ya apakah proses
lainnya masih dapat dilanjutkan?

Jawab: Tidak, karena P2 masih memenuhi sumberdaya yang tersedia. Dan karena
hanya ada 1 proses yang sedang berlangsung maka tidak perlu ada proses
menunggu ataupun pengaksesan secara bergantian, sehingga deadlock tidak
terdeteksi

24. [Hal. 336-338]Sebutkan dan jelaskan dua cara untuk memulihkan deadlock yang
terjadi.
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:
oMenghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu
mahal). o Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock
dapat diatasi (memakan banyak waktu).
oMenghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan
kedalaman dari rollback.
● Resources Preemtion
Metode ini lebih menekankan kepada bagaimana menghambat suatu proses dan
sumber daya, agar tidak terjebak pada unsafe condition.
Beberapa langkahnya, yaitu:
oPilih salah satu - proses dan sumber daya yang akan di-preempt. o Rollback ke safe
state yang sebelumnya telah terjadi.
oMencegah suatu proses agar tidak terjebak pada starvation karena metode ini.

25. [Hal. 223] Dining Philosophers


Terdapat 5 (lima) filosof menghabiskan hidupnya untuk berfikir dan
makan. Filosof tersebut membagi meja berlingkar dengan 5 kurisi yang

Laporan Praktikum Sistem Operasi 26


dimiliki oleh setiap filosof. Menu mereka adalah spaghetti yang
membutuhkan 2 (dua) alat makan yaitu 2 garpu. Ditengah meja terdapat
semangkuk spaghettig, 5 piring, dan 5 garpu. Bila filosofi lapar, maka
akan mengambil 2 garpu terdekat (sebelah kanan dan kirinya). Filosofi
berikutnya tidak dapat mengambil garpu tetangganya yang sedang
digunakan, harus menunggu tetangganya selesai menggunakan.
Jawab:

a. Sesuai dengan ilustrisi dining philosopers di atas, jelaskan bagaimana


deadlock dan starvation akan terjadi?
b. Jelaskan beberapa cara untuk mengatasi deadlock yang terjadi.

• Ketika seorang filsuf, yang sebagian besar dalam bisnis berpikir


mendapat lapar, ia meraih dua garpu untuknya langsung kiri dan kanan
dan mati-set untuk mendapatkan makanan. Scenario biasanya
diproyeksikan adalah bahwa jika semua filsuf ambil garpu mereka di
sebelah kiri mereka secara bersamaan dan tidak satupun dari mereka
akan dapat meraih garpu sebelah kanan mereka. Lalu proses antrian
Laporan Praktikum Sistem Operasi 27
akan berlanjut pada filsuf dalam menggunakan garpu, sementara filsuf
lainnya melakukan makan dan berfikir. Dan karena itu maka akan
terjadi deadlock dimana seluruh filsif menunggu garpu yang sedang
dipakai.
• Pada pemrograman konkuren diperlukan beberapa teknik yang dapat
menghindari keadaan deadlock pada saat melakukan pekerjaan yang
bersamaan. Jika terjadi deadlock komputer akan mengalami waktu
tunggu yang lama dan kemungkinan dapat menyebabkan komputer
bekerja sama sekali. Teknik lock dan release adalah salah satu cara
yang dapat menghindari deadlock dari sitem pemrograman konkuren.

Laporan Praktikum Sistem Operasi 28

Anda mungkin juga menyukai