Anda di halaman 1dari 49

SISTEM OPERASI

KELOMPOK 7
ANGGOTA KELOMPOK

MASFI ULIL AFFANDI ARIEL SAMBALI

20081010020 20081010029

FIRLIE AURELLIA AZ-ZAHRA MUHAMMAD ABI PRAKOSA

20081010209 20081010232

SABRINA LAILA SARI

20081010224
SISTEM OPERASI
Soal 1.18

Banyak sistem SMP memiliki tingkat cache yang berbeda; satu tingkat bersifat
lokal untuk setiap inti pemrosesan, dan level lainnya dibagikan di antara
semua pemrosesan inti. Mengapa sistem caching dirancang seperti ini?

Jawab
Cache lokal jauh lebih cepat daripada cache bersama. Data yang diharapkan
untuk digunakan oleh beberapa prosesor dimasukkan ke dalam cache
lokalnya, tetapi ada juga yang dimasukkan ke dalam cache bersama.
contohnya memasukkan data ke dalam cache bersama sehingga dapat
dengan cepat ditransfer ke cache lokal dari prosesor lain jika memulai
beberapa proses yang membutuhkan data ini.
Soal 1.27

Identifikasi beberapa kelebihan dan kekurangan dari sistem operasi open-source.


Identifikasi tipe orang yang akan menemukan masing-masing aspek menjadi
keuntungan atau kerugian!

Jawab
Kelebihan : Pengguna dapat menikmati sistem operasi open-source secara
gratis, bersama dengan komunitas aktif pengembang sukarela yang
membantu memeliharanya.

Kekurangan : Perusahaan cenderung kehilangan uang dari kurangnya


penjualan lisensi perangkat lunak.
Operating-system
service
Soal 2.15
Apa dua model komunikasi antarproses? Apa kekuatan
dan kelemahan dari kedua pendekatan tersebut?

Jawab

Model Penyampaian Pesan


Model Memori Bersama
Soal 2.18
Terkadang sulit untuk mencapai pendekatan berlapis jika dua
komponen sistem operasi saling bergantung satu sama lain.
Identifikasi skenario tersebut dimana melapisi dua komponen
sistem yang memerlukan sambungan erat dari fungsinya.

Jawab
Subsistem memori virtual dan subsistem penyimpanan biasanya
digabungkan dengan erat dan membutuhkan desain yang cermat
dalam sistem berlapis karena hal-hal berikut:
Interaksi
Penyimpanan
Soal 2.21
Bagaimana iOS dan Android serupa? Bagaimana mereka berbeda?

Jawab
Perbedaan iOS dan Android

Aplikasi Android diperoleh dari Google Play sedangkan


aplikasi iOS tersedia di toko aplikasi Apple.
Kecepatan berjalan perangkat iOS tetap konsisten dengan
waktu. Berbeda dengan Android, kinerja perangkat Android
dapat menurun seiring waktu.
Terdapat asisten suara yang berbeda untuk iOS dan
Android yaitu Siri dan Google Assistant. Asisten Google
jauh lebih kuat daripada Siri
Persamaan iOS dan
Android
Fungsi dasar di iOS dan Android sama. Setiap ponsel iOS dan
Android memiliki panggilan, pesan, penelusuran web, obrolan
video, peta, perintah suara, dan lain-lain.
Jaringan seluler 4G sering dinikmati di setiap perangkat iOS dan
Android. Ini bisa menjadi penting karena jaringan seluler sangat
penting untuk menikmati akses internet.
Pengaturan privasi sangat penting di iOS dan Android.
Pengguna diberikan izin aplikasi karena ini mengurangi risiko
kebocoran data.
PROCESSES
Soal 3.14
Berikan contoh situasi di mana sebuah pipa biasa lebih cocok
daripada pipa bernama dan beri contoh situasi di mana pipa
bernama lebih cocok daripada pipa biasa.

Jawab
Komunikasi sederhana bekerja baik dengan pipa biasa karena
memiliki proses untuk menghitung karakter dalam file dan hal ini
membuat pipa biasa lebih cocok daripada pipa bernama. Pipa
biasa dapat digunakan dimana produsen menulis file ke pipa dan
konsumen membaca file dan menghitung jumlah karakter dalam
file. Pipa biasa membutuhkan hubungan orang tua-anak antara
proses komunikasi. Sedangkan Pipa bernama lebih cocok daripada
pipa biasa ketika medianya dua arah, dan tidak ada hubungan
induk anak antara proses.
Soal 3.16

Dengan menggunakan program yang ditunjukkan pada Gambar


3.35, jelaskan output apa yang akan dihasilkan pada baris X dan Y

Jawab
Karena anak adalah salinan dari orang tua, setiap perubahan yang
dibuat anak akan terjadi pada salinan datanya dan tidak akan tercermin
dalam orang tua. Akibatnya, nilai yang dikeluarkan oleh anak pada
baris X adalah 0, -1, -4,-9, -16. Nilai yang dikeluarkan oleh induk pada
jalur Y adalah 0, 1, 2, 3, 4
Soal 3.10

Jelaskan peran proses init (atau systemd) pada sistem UNIX dan
Linux sehubungan dengan penghentian proses.

Jawab
Init adalah induk dari semua proses, dijalankan oleh kernel selama
booting sistem. Peran utama dari init adalah dengan membuat
proses dari skrip yang disimpan didalam file /etc/inittab.
Threads dan
Concurrency
Soal 4.14
Menggunakan Hukum Amdahl, hitung peningkatan
kecepatan untuk aplikasi berikut

 40 persen paralel dengan (a) delapan inti


pemrosesan dan (b) enam belas inti pemrosesan
 67 persen paralel dengan (a) dua inti
pemrosesan dan (b) empat inti pemrosesan
 90 persen paralel dengan (a) empat inti
pemrosesan dan (b) delapan inti pemrosesan
Jawab 40 persen paralel dengan

a) 8 inti pemrosesan b) 16 inti pemrosesan


Jawab 67 persen paralel dengan

a) 2 inti pemrosesan b) 4 inti pemrosesan


Jawab 90 persen paralel dengan

a) 4 inti pemrosesan b) 8 inti pemrosesan


Soal 4.17
Perhatikan segmen kode berikut:

pid t pid;
pid = fork();
if (pid == 0) { /* child process */
fork();
thread create( . . .);
}
fork();

a. Berapa banyak proses unik yang dibuat?


b. Berapa banyak thread unik yang dibuat
Jawaban
Pernyataan itu pid = fork ();.. sebelum jika pernyataan menciptakan satu proses proses induk katakanlah p menciptakan
proses ini Biarlah p1();. 
pernyataan fork dalam jika pernyataan menciptakan satu proses proses induk p menciptakan proses ini. Biarkan
p2. 
setelah pernyataan if, proses induk p, proses p1 dan proses p2 akan mengeksekusi fork(); membuat tiga proses
baru. 
Satu proses dibuat oleh proses induk p. 
Satu proses dibuat oleh proses p1. 
Satu proses dibuat oleh proses p2.
Oleh karena itu, 5 proses unik (p1, p2, p3, p4, p5) akan dibuat. Jika proses induk juga dipertimbangkan, maka 6 proses
unik (p, p1, p2, p 3, p4, p1, p5) akan dibuat.

Pembuatan thread dilakukan di blok if. Hanya proses anak p1 yang dieksekusi di blok if. Oleh karena itu, proses p1
akan dibuat satu utas. 
Di blok if satu proses p2 dibuat menggunakan fork(). Oleh karena itu, proses p2 juga akan membuat thread.
Soal 4.20
Pertimbangkan sistem multicore dan program multithreaded
yang ditulis menggunakan model threading banyak. Biarkan
jumlah thread tingkat pengguna dalam program lebih besar
daripada jumlah inti pemrosesan dalam sistem. Diskusikan
implikasi kinerja dari skenario berikut.

Jumlah thread kernel yang dialokasikan untuk program


kurang dari jumlah inti pemrosesan.
Jumlah thread kernel yang dialokasikan untuk program
sama dengan jumlah inti pemrosesan.
Jumlah thread kernel yang dialokasikan untuk program
lebih besar dari jumlah inti pemrosesan tetapi kurang dari
jumlah thread tingkat pengguna.
Jawaban

a) Ketika jumlah thread kernel kurang dari jumlah prosesor, maka beberapa prosesor akan
tetap, tidak akan berjalan ataupun melakukan proses eksekusi, karena penjadwal hanya
memetakan thread kernel ke prosesor dan bukan thread tingkat pengguna ke prosesor.

b) Ketika jumlah thread kernel sama persis dengan jumlah prosesor, maka ada kemungkinan
bahwa semua prosesor dapat digunakan secara bersamaan. Namun, ketika thread kernel
memblokir di dalam kernel (karena kesalahan halaman atau saat menjalankan panggilan
sistem), prosesor yang sesuai akan tetap, tidak akan berjalan ataupun melakukan proses
eksekusi.

c) Ketika thread kernel lebih dari prosesor, thread kernel yang diblokir dapat ditukar
alihalih thread kernel lain yang siap dieksekusi, ini akan meningkatkan pemanfaatan sistem
multiprosesor
CPU Scheduling
Soal 5.17

Pertimbangkan rangkaian proses berikut, dengan panjang CPU burst yang


diberikan dalam miliseconds:

Proses diasumsikan telah tiba dalam urutan P1,P2,P3,P4,P5, semuanya pada


waktu 0.
a. Gambarlah empat bagan Gantt yang mengilustrasikan eksekusi proses ini
menggunakan algoritma penjadwalan berikut: FCFS, SJF, prioritas non-
preemptive (angka prioritas yang lebih besar menyiratkan prioritas yang lebih
tinggi), dan RR(quantum = 2).
b. Berapa waktu penyelesaian setiap proses untuk masing-masing algoritma
penjadwalan di bagian a?
c. Berapa waktu tunggu dari setiap proses untuk masing-masing algoritma
penjadwalan ini?
d. Manakah dari algoritma yang menghasilkan waktu tunggu rata-rata minimum
(di atas semua proses)?
Jawab
Jawab
Soal 5.21

Pertimbangkan varian dari algoritma penjadwalan RR di mana entri


dalam antrian siap adalah pointer ke PCB.
a) Apa akibat dari menempatkan dua pointer ke proses yang sama
dalam antrian siap?
b) Apa yang akan menjadi dua keuntungan utama dan dua kerugian
dari skema ini?
c) Bagaimana Anda memodifikasi algoritma RR dasar untuk
mencapai efek yang sama tanpa pointer duplikat?
Jawab

a) Akibatnya, proses itu akan meningkat prioritasnya karena dengan


mendapatkan waktu lebih sering itu menerima perlakuan istimewa.
b) Keuntungannya adalah pekerjaan yang lebih penting dapat
diberikan lebih banyak waktu, dengan kata lain, prioritas yang lebih
tinggi dalam perawatan. Konsekuensinya, tentu saja, pekerjaan yang
lebih pendek akan menderita.
c) Alokasikan waktu yang lebih lama untuk proses yang layak
mendapat prioritas lebih tinggi, dengan kata lain, memiliki dua atau
lebih kuantum yang mungkin dalam skema round-robin.
Soal 5.25

Jelaskan bagaimana algoritma penjadwalan berikut


mendiskriminasi baik mendukung atau melawan proses pendek:
a. FCFS
b. RR
c. Multilevel Feedback Queues
Jawab

1. First come first serve scheduling (FCFS).


Dalam algoritma ini, proses yang membutuhkan CPU terlebih dahulu
dialokasikan ke CPU terlebih dahulu dan implementasinya dapat dengan
mudah dipertahankan menggunakan antrian FIFO. Ketika CPU kosong,
proses diberikan CPU dan akan terus menahan pengisian CPU dihentikan
atau meminta perangkat I/O. Jadi proses menunggu CPU harus menunggu
eksekusinya. Jadi, waktu tunggu besar jika proses yang lebih besar
dijalankan sebelum proses yang lebih pendek. Dengan demikian kita dapat
mengatakan, FCFS mendiskriminasi pekerjaan pendek karena setiap
pekerjaan pendek yang tiba setelah pekerjaan panjang akan memiliki waktu
tunggu yang lebih lama.
Jawab

2. Round rotrin scheduling.


Algoritma ini dirancang untuk sistem pembagian waktu. Satuan kecil waktu yang
disebut kuantum waktu atau irisan waktu didefinisikan dan setiap proses
dimasukkan dan keluar dari CPU tergantung pada nilai kuantum waktu ini.
Kuantum waktu umumnya dari 10 ms sampai 100 ms panjangnya. Di sini sebuah
proses tidak diberikan CPU lebih dari 1 kali kuantum. Kinerja algoritma RR sangat
bergantung pada ukuran kuantum waktu, jika kuantum waktu sangat lama
kebijakan RR berperilaku sama dengan FCFS dan jika kuantum waktu sangat kecil
(katakanlah 1, ms) maka pendekatan RR disebut sebagai prosesor berbagi dan
menciptakan tampilan bahwa setiap proses memiliki prosesornya sendiri yang
berjalan pada 1/n kecepatan prosesor sebenarnya. Kita dapat mengatakan bahwa,
RR – memperlakukan semua pekerjaan secara setara ( memberikan mereka waktu
burst CPU yang sama) sehingga jb yang singkat akan dapat meninggalkan sistem
lebih cepat karena mereka akan selesai terlebih dahulu.
Jawab

3. Multilevel feedback queues.


Ini memungkinkan proses untuk berpindah antar antrian, idenya adalah untuk
memisahkan proses sesuai dengan karakteristik waktu burst-nya. Jika proses
menggunakan terlalu banyak waktu CPU maka akan dipindahkan ke antrian prioritas
yang lebih rendah karena skema ini semua I/O dibatasi dan proses antar berada dalam
antrian prioritas yang lebih tinggi. Selain itu, proses yang menunggu terlalu lama dalam
antrian prioritas yang lebih rendah dapat dipindahkan ke antrian prioritas yang lebih
tinggi dan bentuk penuaan ini mencegah kejenuhan. Dengan demikian kita dapat
mengatakan, antrian umpan balik bertingkat bekerja mirip dengan algoritma RR
sehingga mereka mendiskriminasikan pekerjaan pendek.
Synchronization
Synchronization

Tools
Tools
Soal 6.13

Solusi perangkat lunak benar pertama yang diketahui untuk masalah bagian
kritis untuk dua proses dikembangkan oleh Dekker. Kedua proses tersebut,P0
dan P1, bagikan variabel
berikut:
boolean flag [2]; /*initially false */
int turn;
Struktur proses Pi (i== 0 atau 1) ditunjukkan pada Gambar 6.18. Proses
lainnya adalah PJ
(j == 1 atau 0). Buktikan bahwa algoritma memenuhi semua tiga persyaratan
untuk masalah bagian kritis.
Jawab

Algoritma ini memenuhi tiga kondisi saling eksklusi.


Pengecualian bersama dipastikan melalui penggunaan variabel flag and
turn. Jika kedua proses mengatur flagnya ke true, hanya satu yang akan
berhasil, yaitu proses yang mendapat giliran. Proses waiting hanya dapat
memasuki critical section-nya ketika proses lainnya mengupdate nilai
turn.
Jawab

Kemajuan disediakan, sekali lagi melalui variabel flag dan turn.


Algoritma ini tidak memberikan pergantian yang ketat.
Sebaliknya, jika suatu proses ingin mengakses bagian kritisnya,
itu dapat mengatur variabel flagnya ke true dan memasuki
bagian kritisnya. Ini menetapkan giliran ke nilai proses lain
hanya setelah keluar dari bagian kritisnya. Jika proses ini ingin
memasuki critical section-nya lagi sebelum proses lainnya
mengulangi proses memasuki critical section-nya dan setting
beralih ke proses lain setelah keluar.
Jawab

Menunggu terikat dipertahankan melalui penggunaan variabel


belokan. Asumsikan dua proses ingin memasuki bagian kritis
masing-masing. Mereka berdua mengatur nilai flag menjadi
true; namun, hanya utas yang gilirannya dapat melanjutkan;
utas lainnya menunggu. Jika penantian terbatas tidak
dipertahankan, oleh karena itu mungkin proses menunggu
harus menunggu tanpa batas waktu sementara proses pertama
berulang kali masuk dan keluar bagian kritisnya. Namun,
algoritma Dekker memiliki proses yang mengatur nilai giliran ke
proses lain, sehingga memastikan bahwa proses lain akan
memasuki bagian kritisnya berikutnya.
Soal 6.16

Pertimbangkan cara menerapkan kunci mutex menggunakan membandingkan dan


menukar() petunjuk. Asumsikan bahwa struktur berikut yang mendefinisikan kunci mutex
tersedia:
typedef struct {
int available;
} lock;
Nilai (tersedia == 0) menunjukkan bahwa kunci tersedia, dan nilai 1 menunjukkan bahwa
kunci tidak tersedia. Menggunakan inistruktur, menggambarkan bagaimana fungsi-fungsi
berikut dapat diimplementasikan menggunakan: membandingkan dan menukar() petunjuk:
void acquire(lock *mutex)
void release(lock *mutex)
Pastikan untuk menyertakan inisialisasi apa pun yang mungkin diperlukan.
Jawab
typedef struct {
int
available;
}lock;
void init(lock *mutex){
// available==0 ->
lock is available, available==1 -> lock unavailable
mutex->available=0;
}
int test_And_Set(int *target){
int rv = *target;
*target = true;
return rv
}
void acquire(lock *mutex){
while(test_and_set(&mutex->available,1)==1)
;
}
void release(lock *mutex){
mutex->available=0;
}
Compare and Swap:
int
compare_and_Swap(int *ptr,int expected,int new){
int actual = *ptr;
if(actual == expected)
*ptr = new;
return actual;
}
void acquire(lock *mutex){
while(compare_and_swap(&mutex->available,0,1)==1);
}
void release(lock *mutex){
mutex->available=0;
}
Soal 6.19

Asumsikan bahwa suatu sistem memiliki beberapa inti pemrosesan. Untuk


setiapskenario berikut, jelaskan mekanisme penguncian mana yang lebih
baik spinlock atau kunci mutex tempat proses menunggu tidur sambil
menunggu kunci tersedia:
Kunci harus dipegang untuk waktu yang singkat.
Kunci harus dipegang untuk waktu yang lama.
Sebuah utas dapat ditidurkan sambil memegang kunci.
Jawab

Kunci harus ditahan untuk jangka waktu yang singkat -


Untuk menggunakan spinlock yang mungkin lebih
cepat daripada menggunakan kunci mutex hal tersebut
memerlukan penangguhan dan kebangkitan proses
menunggu.
Kunci harus ditahan untuk jangka waktu yang lama -
kunci mutex lebih disukai karena ini memungkinkan inti
pemrosesan lainnya untuk menjadwalkan proses lain
sementara proses yang terkunci menunggu.
Sebuah utas dapat ditidurkan sambil menahan kunci -
kunci mutex jelas lebih disukai karena tidak ingin terjadi
proses menunggu berputar sambil menunggu proses
lainnya bangun.
Deadlocks
Soal 8.18
Manakah dari enam grafik alokasi sumber daya yang
ditunjukkan pada Gambar 8.12 yang menggambarkan
kebuntuan? Untuk situasi yang menemui jalan buntu,
berikan siklus utas dan sumber daya. Di mana tidak ada
situasi kebuntuan, gambarkan urutan di mana utas dapat
menyelesaikan eksekusi.
Jawab
a) Tidak Deadlock Eksekusi Selesai di Node T2
b) Deadlock R2 , T2 menahan R2, T2 Menunggu
R3, T3 menahan R3, T3 Menunggu R1, T1
Menahan R1, T1 Menunggu R3 dan kembali ke
Cycle R3
c) Tidak Deadlock Eksekusi Selesai di Node T2
dan T3
d) Deadlock, T1 Menahan R1,T1 menunggu R2, T3
Menahan R2, T3 Menunggu R1, T2 Menahan R1,
T2 Menunggu R2, T4 menahan R2, T4 menunggu
R1 dan kembali lagi ke Cycle R1.
e)Tidak Deadlock Eksekusi Selesai di Node T2
f) Tidak Deadlock Eksekusi Selesai di Node T2
dan T4
Soal 8.21
Pertimbangkan snapshot sistem berikut:
Apa isi dari Needmatrix?
Jawab
Need [i] = Max [i] - Allocation [i]

Need untuk T0: (6, 3, 2, 7) - (2, 1, 0, 6) = 4, 2, 2, 1

Need untuk T1: (5, 4, 1, 5) - (3, 3, 1, 3) = 2, 1, 0, 2

Need untuk T2: (6, 6, 1, 4) - (2, 3, 1, 2) = 4, 3, 0, 2

Need untuk T3: (4, 3, 4, 5) - (1, 2, 3, 4) = 3, 1, 1, 1

Need untuk T4: (7, 2, 6, 1) - (3, 0, 3, 0) = 4, 2, 3, 1


Soal 8.24
Pertimbangkan versi masalah makan-filsuf di mana
sumpit ditempatkan di tengah meja dan dua di antaranya
dapat digunakan oleh seorang filsuf. Asumsikan bahwa
permintaan sumpit dibuat satu per satu. Jelaskan aturan
sederhana untuk menentukan apakah permintaan
tertentu dapat dipenuhi tanpa menyebabkan kebuntuan
mengingat alokasi sumpit saat ini untuk para filsuf.

Jawab
Aturan berikut mencegah kebuntuan: ketika seorang filsuf
membuat permintaan sumpit pertama, tidak memenuhi permintaan
saja jika tidak ada filsuf lain dengan dua sumpit dan jika hanya ada
satu sumpit tersisa.
THANK YOU

Anda mungkin juga menyukai