Sistem Operasi
Penjadwalan CPU
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.
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.
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 𝑅𝑎, 𝑅𝑏}
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 𝑅𝑎, 𝑅𝑏}
● 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.
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.
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
B 1 3
C 3 7
Jumlah 10
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:
A 2 10
B 0 0
C 3 7
Jumlah 5
B 0 0
C 0 0
Jumlah 10
Sisa 10-10=0
Diakhir siklus akan diperoleh hasil seperti berikut:
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
𝑃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 … … …
Need
𝑅1 𝑅2 𝑅3
𝑃1 2 2 2
𝑃2 0 0 1
𝑃3 1 0 3
𝑃4 4 2 0
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
𝑃1 … … … ... ... … …. …. ….
𝑃2 6 1 2 … … …
𝑃3 2 1 1 … … …
𝑃4 0 0 2 … … …
Jawab:
𝑃4 0 0 2 4 2 0y
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
𝑃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
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.