BAB
1 (Penengalan Sistem Operasi)
Latihan soal 1 :
1. Apa yang dimaksud
sistem
a. Batch sistem
b. Multiprogramming
c. Time Sharing
d. Paralel
(Multiprocessor)
e. Terdistribusi
f. Cluster
g. Real Time
h. Handheld
2. Apa perbedaan
sistem single programming dan multiprogramming?
3. Apa perbedaan
symmetric dan asymmetric multiprocessing?
4. Apa perbedaan
sistem paralel dan sistem terdistribusi?
5. Apa perbedaan
sistem terdistribusi dan sistem terklaster?
6. Apa yang dimaksud
symmetric dan asymmetric clustering?
7. Sebutkan
keuntungan menggunakan sistem terdistribusi?
Jawaban
1.
a. Batch sistem adalah dimana job-job yang mirip dikumpulkan dan dijalankan
secara kelompok kemudian setelah kelompok yang dijalankan tadi selesai, maka
secara otomatis kelompok lain dijalankan.
b. Multiprogramming
adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.
c. Time Sharing
adalah pengembangan dari sistem multiprogram beberapa job yang berasa pada
memori utama
d. Paralel
(Multiprocessor) adalah kemampuan pemrosesan komputer yang dilakukan secara
serentak, hal ini memungkinkan dengan menggunakan dua CPU atau lebih dalam
sebuah sistem komputer.
e. Terdistribusi
yaitu mendistribusikan komputasi diantara beberapa prosessor.
f. Cluster adalah
pengembangan dari sistem terdistribusi, pada sistem ini memungkinkan dua atau
lebih sistem untuk membagi penyimpan sekunder (storage) bersama-sama.
g. Real Time adalah
kondisi pengoperasian dari suatu sistem perangkat keras dan perangkat lunak
yang dibatasi oleh rentang waktu dan memiliki tenggang waktu (deadkine) yang
jelas, relatif terhadapp waktu suatu peristiwa atau operasi terjadi.
h. Handheld adalah
sistem yang lebih kecil dari milrokomputer dalam bentuk personal digital
assistans (PDA).
2. Pada single programming, suatu processor
mengerjakan satu program yang ada di memori utama, sedangkan pada multi
programming satu prosessor dapat mengerjakan banyak program yang ada di memori
utama.
3. Pada symmetric
multiprocessing tiap prosessor mempunyai sistem operasi yang sama dan dapat
melakukan komunikasi antar prosessor berfungsi sebagai master prosessor,
sedangkan pada asymmtric multiprocessing satu prosessor berfungsi sebagai
master prosessor yang bertugas mengatur penjadwalan dan mengalokasikan kerja
tiap prosessor dan prosessor lain berfungsi sebagai salave.
4. Pada sistem
paralel tiap prosessor dapat menggunakan memori atau time bersama-sama,
sedangkan pada sistem terdistribusi kumpulan prosessor tidak dapat digunakan
secara bersamaan.
5. Pada sistem
terklaster memungkinkan dua atau lebih sistem untuk membagi penyimpan sekunder
(storage) bersama-sama, sistem terklanser mempunyai kehandalan sistem yang
tinggi pada sistem terdistribusi.
6. a. Symmetric clustering adalah dimana semua
host menjalankan aplikasi.
b. Asymmetric
clustering adalah dimana suatu server menjalankan aplikasi sementara server
lainnya satndby.
7. Keuntungan Menggunakan Sistem Terdistribusi
a. Resorce Sharing
Jika sejumlah site
yang berbeda dihubungkan, maka user pada site satu dapat menggunakan sumber
daya dari site lainnya. Sebagai contoh, user pada site A dapat menggunakan
printer laser dari site B. Sebaliknya user B dapat mengakses file user A.
b. Meningkatkan
Kecepatan Komputasi
Jika komputasi
tertentu dapat dipartisi dalam sejumlah sub komputasi yang dapat berjalan
secara konkuren, maka sistem terdistrbusi dapat mendistribusikan komputasi pada
beberapa site untuk menjalankan komputasi secara konkuren.
c. Lebih Handal
Jika satu site gagal
pada sistem terdistribusi, sisa site dapat melanjutkan operasinya. Jika sistem
dibagi sejumlah intalasi besar, maka kegagalan salah satunya tidak berakibat
pada sisa sistem. Sebaliknya, jika sistem dibagi dalam sejumlah mesin kecil,
masing-masing bertanggung jawab pada fungsi sistem yang penting (misal terminal
karakter I/O atau sistem file), maka satu kegagalan dapat menghentikan operasi
dari keseluruhan sistem. Secara umum, jika terjadi redudansi pada sistem (baik
perangkat keras maupun perangkat lunak), sistem dapat menjalankan operasinya
meskipun beberapa site gagal.
d. Komunikasi
Terdapat beberapa
anggota program yang memerlukan mengganti data dengan data lain pada satu
sistem. Sistem windows contohnya, sering terjadi membagi data atau transfer
data antara display. Jika beberapa site dihubungkan dengan lainya dengan
jaringan komunikasi, prosesoor pada site yang berbeda dapat menukar informasi.
User melakukan transfer file atau komunikasi dengan user lain melalui
elektronic mail. Seorang user dapat mengirim mail ke user lain pada site yang
sama atau site yang berbeda.
Sistem terdistribusi
memerlukan infrastruktur jaringan, berupa local area network (LAN) atau wide
area networking (WAN). Sistem terdistribusi biasanya disebut dengan sistem
client-server atau peer to peer.
BAB 2 (Struktur Sistem
Operasi)
Latihan Soal 2 :
1. Aktifitas apa yang
dilakukan Sistem Operasi berhubungan dengan :
a.
Manajemen Proses
b.
Manajemen Memory Utama
c.
Manajemen File
2. Apa kegunaan
sistem command interpreter?
3. Apa yang dimaksud
dengan system calls? Sebutkan contohnya.
4. Apa yang dimaksud
dengan sistem program?
5. Apa keuntungan dan
kelemahan sistem layer?
6. Apa keuntungan dan
kerugian sistem virtual memory?
Jawaban
1. a.
Aktifitas – aktifitas Manajemen Proses
1. Pembuatan dan
penghapusan proses yang dibuat oleh user atau sistem.
2.
Menghentikan proses sementara dan melanjutkan proses.
3. Menyediakan
kelengkapan mekanisme untuk sirkonisasi proses dan komunikasu proses.
b. Aktifitas –
aktifitas Manajemen Memory Utama
1.
Menjaga dan memelhara bagian – bagian memory yang sedang digunakan dan dari
yang menggunakan.
2.
Memutuskan proses – proses mana saja yang harus di panggil ke memori jika
tersedia ruang di memori.
3.
mengalokasikan dan mengalokasikan ruang memori jika diperlukan.
c. Aktifitas –
aktifitas Manajemen File
1. Pembuatan dan
Penghapusan File.
2. Pembuatan dan
Penghapusan Direktori.
3. Primitif –
primitif yang mendukung untuk manipulasi file ke direktori.
4. Pemetaan file ke
memori sekunder.
5. Backup file ke
media penyimpanan yang stabil (nonvolatile).
2. Kegunaan command
interpenter :
a. Eksekusi Program
Sistem harus dapat
memanggil program ke memori dan menjalankannya. Program tersebut harus dapat
mengakhiri eksekusinya dalam bentuk normal atau abnormal (indikasi errior).
b. Operasi – operasi I/O
Pada saat running
program kemungkinan dibutuhkan I/O, mungkin berupa file atau peralatan I/O.
Agar efisisen dan aman, maka user tidak boleh mengontrol I/O secara langsung,
pengontrolan dilakukan oleh sistem operasi.
c. Manipulasi sistem file
Kapabilitas program
untuk membaca, menulis, membuat dan menghapus file.
d. Komunikasi
Komunikasi dibutuhkan
jika beberapa proses yang sedang dieksekusi saling tukar – menukar informasi.
Penukaran informasi dapat dilakukan oleh beberapa proses dalam satu komputer
yang berbeda melalui sistem jaringan. Komunikasi dilakukan dengan cara berbagi
memori (shared memori) atau dengan cara pengiriman pesan (message passing).
e. Mendeteksi
Kesalahan
Sistem ini harus
menjamin kebenaran dalam komputasi dengan melakukan pendeteksian error pada CPU
dan memori, perangkat I/O atau pada user program.
Beberapa
fungsi tambahan yang ada tidak digunakan untuk membantu user, tetapi lebih
digunakan untuk menjamin operasi sistem yang efisien yaitu :
a. Mengalokasikan
sumber daya (resource).
Sistem harus dapat
menglokasikan resource untuk banyak job yang dijalankan dalam waktu yang sama.
b. Akuntansi
Sistem membuat
catatan daftar berapa resource yang digunakan user dan resource apa saja yang
digunakan untuk menghtung secara statistik akuntansi penggunaan resource.
c. Proteksi
sistem operasi harus
menjamin bahwa semua akses ke resource terkontrol dengan baik.
3. System call yaitu
menyadiakan interface antar program (program pengguna yang sedang berjalan)
dengan sistem operasi. System call menjadi jembatan antara proses dan sistem
operasi,system call ditulis dalam bahasa assembly atau bahasa tingkat tinggi
yang dapat mengendalikan mesin. Contoh : UNIX menyediakan system call : read,
write (operasi I/O untuk berkas).
4. Sistem Program
adalah segala jenis perangkat lunak yang dibutuhkan untuk pembentukan suatu
sistem baru atau perangkat lunak yang dbutuhkan untuk menjalankan program
aplikasi tetapi tidak ditunjukan untuk satu aplikasi khusus.
5. a. Dibuat dengan
menggunakan pendekatan top down semua fungsi ditentukan dan dibagi menjadi
komponen – komponen.
b. Modularisistem
dilaksanakan dengan cara memecah sistem operasi menjadi beberapa lapis. Dengan
sistem modularisasi setiap lapisan mempunyai fungsi operasi tertentu dan
melayani lapisan yang lebih rendah.
c.
Lapisan terendah layer 0 adalah perangkat keras lapisan teratas layer n adalah
user interface.
·
Keuntungan menggunakan sistem layer
a. Memiliki rancangan
modular, yaitu sistem dibagi menjadi beberapa modul dan tiap modul dirancang secara
independen.
b. Pendekatan berlapis menyederhanakan rancangan,
spesifikasi dan implementasi sistem operasi.
·
Kerugian menggunakan sistem layer
a. fungsi – fungsi sistem operasi diberikan ke
tiap lapisan secara hati – hati.
6.
keuntungan dan kerugian konsep mesin virtual memory adalah sebagai berikut :
a. Konsep mesin
virtual menyediakan proteksi yang lengkap untuk sumber daya sistem sehingga
masing – masing mesin virtual dipisahkan dengan mesin virtual yang lain,
isolasi ini tidak memperbolehkan pembagian sumber daya secara langsung.
b. Sistem mesin
virtual adalah mesin yang sempurna untuk riset dan pengembangan sistem operasi.
Pengembangan sistem dikerjakan pada mesin virtual, termasuk di dalamnya mesin fisik dan tidak
mengganggu operasi sistem yang normal.
c. Konsep mesin virtual sangat sulit untuk
mengimplementasikan kebutuhan dan duplikasi yang taat pada mesin yang
sebenarnya.
BAB
3 (Proses Proses)
Latihan soal 3:
1. Sebutkan state pada proses dan jelaskan diagram proses
2. Apa yang dimaksud dengan short term scheduler dan long
term scheduler?
3. Jelaskan 4 alasan mengapa proses harus bekerja sama.
4. Tuliskan kode program untuk penyelesaian permasalahan
producer consumer dengan menggunakan shared memory.
5. Diketahui skema komunikasi antar proses menggunakan
mailbox
a. Proses P ingin menunggu 2 pesan, satu dari mailbox A
dan satu dari mailbox B.
Tunjukan urutan send dan receive yang diekskusi
b. Bagaimana urutan send and receive yang dieksekusi P
jika P ingin menunggu satu pesan dari mailbox A atau mailbox B (salah satu atau
keduaya)
6. Jelaskan apa yang dimaksud dengan thread dan struktur
dari thread
7. Jelaskan empat keuntungan menggunakan threads pada
multi process
8. Apakah perbedaan antara user – level thread dan kernel
– supported threads?
9. Ada 3 model multithreading, jelaskan
10. Jelaskan state pada java thread
Jawaban
1. a. New adalah proses sedang dibuat.
b. Running adalah proses sedang dieksekusi.
c. Waiting adalah proses ssedang menunggu beberapa event
yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima
sinyal).
d. Ready adalah proses menunggu jatuh waktu dari CPU
untuk di proses.
e. Terminated adalah proses telah selesai dieksekusi.
.
Gambar Perubahan status proses
Gambar Proses Control Block
Penjelasan Diagram Proses :
a. Status Proses : new, ready, running, waitting dan
terminated.
b. Program Counter : menunjukan alamat berikutnya yang
akan dieksekusi oleh proses tersebut.
c. CPU Register : Register bervariasi tipe dan jumlahnya
tergantung arsitektur komputer yang bersangkutan. Register – register tersebut
terdiri atas : accumulator, index register, stack pointer, dan register
serbaguna dan beberapa informasi tentang kode kondisi. Selama program counter
berjalan, status informasi harus disimpan pada saat terjadi interrupt.
d. Informasi Penjadwalan CPU : informasi tersebut berisi
prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa
parameter penjadwalan yang lainnya.
e. Informasi Manajemen Memori : informasi tersebut berisi
nilai (basis) dan limit register, page table, atau segment table tergantung
pada sistem memori yang digunakan oleh sistem operasi.
f. Informasi Accounting : informasi tersebut berisi
jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah
job atau proses dan lain – lain.
g. Informasi Status I/O : Informasi tersebut berisi
deretan I/O device (seperti tape driver) yang dialokasikan untuk peroses
tersebut, deretan file yang dibuka dan lain – lain.
2. a. long term
schenduler (job Scheduler) : menyeleksi proses – proses mana yang harus di bawa
ke ready queue.
b. short term scheduler (CPU Scheduler): memilih proses –
proses yang siap untuk dieksekusi, dan mengalokasikan CPU ke salah satu dari proses – proses tersebut.
3. Alasan mengapa proses
harus bekerja sama:
1. Pembagian
informasi
2. Meningkatkan
kecepatan komputasi.
3. Proses dapat
dibagi dalam modul – modul
4. Lebih memberikan
kenyamanan pada programer.
4. #define BUFFER_SIZE
10
Typedef struct {
. . .
} item;
Item buffer[BUFFER_SIZE];
Int in= 0;
Int out= 0;
Proses Produced :
Item nextProduced;
While (1) {
While (((in + 1) %
BUFFER_SIZE) == out)
;/* do nothing */
Buffer[in] =
nextProduced;
In = (in + 1) %
BUFFER_SIZE;
}
Proses Consumer :
Item nextconsumed;
While (1) {
While (in == out)
;/* do nothing */
Nextconsumed =
buffer[out];
Out = (out + 1 )%
BUFFER_SIZE;
}
5. a. Send (A pesan)
; mengirim pesan ke mailbox A,
Receive (A pesan);
proses P menerima pesan dari mailbox A
Send (B pesan);
mengirim pesan ke mailbox B
Receive (B pesan);
proses P menerima pesan dari mailbox B
b.
Hanya bisa menerima satu pesan :
caranya:
Receive (P pesan);
menerima pesan dari mailbox A
Receive (P pesan);
menerima pesan dari mailbox B
6. a. Pengertian
thread
Thread adalah suatu
unit dasar dari CPU utilization yang berisi program counter, kumpulan register
dan ruang stack disebut process (LWP). Thread akan bekerjasama dengan thread
yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem
operasi, seperti open file dan sinyal secara kolektif yang sering disebut
dengan task.
b. Struktur Thread
Seperti halnya
proses, thread memiliki status : ready, blocked, running dan terminated, dan
hanya satu thread yang aktiv dalam satu waktu. Thread dapat membuat child
thread, jika satu thread dalam keadaan blocked, maka thread yang lainnya dapat
dijalankan. Namun, tidak saling bebas, sebab semua thread dapat mengakses
setiap alamat dalam satu task, thread dapat membaca dan menulis stack dari
thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap
thread yang lainnya. Suatu proses dapat terdiri dari satu thread (single
thread) dan beberapa thread (multi thread).
7. Empat Keuntungan
menggunakan threads pada multi process:
1. Respon lebih
cepat.
2. Menggunakan
resource bersama – sama.
3. Lebih ekonomis.
4. Meningkatkan
utilitas arsitektur mikroprosessor.
8. a. User thread
adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh
sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan
Solaris thread.
b.
Sedangkan Kernel thread adalah thread yang didukung oleh kernel. Contoh sistem
yang menggunakan kernel thread adalah Windows 95/98/NT/2000, solaris, Tru64
UNIX, BeOS dan Linux.
9. Tiga model
multithreading :
1. Many-to-One :
beberapa user level thread dipetakan ke satu kernel thread dan digunakan pada
sistem yang tidak mendukung kernel threads.
2. One-to-One :
setiap user level thread dipetakan ke kernel thread.
3. Many-to-Many :
user level thread dipetakan ke beberapa kernel threads.
10. Bahasa pemograman
java menggunakan java thread yang dibuat dengan menggunakan class thread dan
mengimplementasikan antar muka yang bersifat runnable (dapat dijalankan). Java
thread diatur oleh java virtual mashine (JVM). Java terdiri dari satate new, runnable,
blocked dan dead.
Gambar.
State pada java thread
BAB 4 (PENJADWLAN CPU)
Latihan Soal 4 :
1. Sebutkan perbedaan
antara penjadwalan preemptive dan nonpreemptive.
2. Terdapat 5 job
yang datang hampir pada saat yang bersamaan. Estimasi waktu eksekusi (burst
time) masing – masing 10, 6, 2, 4, dan 8 menit dengan prioritas masing – masing
3, 5, 2, 1 dan 4, dimana 5 merupakan prioritas tertinggi. Tentukan rata – rata
waktu turn around untuk penjadwalan CPU dengan menggunakan algoritma.
a. Round Robin
(quantum time = 2)
b. Priority
c. Shortest job first
3. Diketahui proses
berikut :
Proses Ariival Time Burst Time
P1 0.0 8
P2 0.4 4
P3 1.0 1
Tentukan rata – rata
waktu turn around dengan algoritma penjadwalan
a. FCFS
b. SJF non preemptive
c. SJF preemptive /
STRF
d. Round Robin dengan
quantum time = 1
4. Suatu algoritma
penjadwalan CPU kemungkinan melibatkan algoritma yang lain, contohnya algoritma
FCFS adalah algoritma RR dengan waktu quantum tertentu. Apakah ada hubungan
antara pasangan algoritma berikut ?
a. Priority dan SJF
b. Priority danFCFS
c.RR dan SJF
Jawaban
1. Pada non –
preemptive yaitu jika proses sedang menggunakan CPU, maka proses tersebut akan
tetap membawa CPU sampai proses tersebut melepaskannya (berhenti atau dalam
keadaan waiting). Sedangkan pada Preemptive schenduling memiliki kelemahan
yaitu biaya yang dibutuhkan sangat tinggi, antara lain harus selalu dilakukan
perbaikan data. Hal ni terjadi karena jika suatu proses ditinggalkan dan akan
segera dikerjakan proses yang lainnya.
2. Diketahui :
Burs time = 10, 6, 2,
4, 8
Priority = 3, 5, 2,
1, 4 (5 adalah prioritas tertinggi)
a. Menggunakan
Algoritma Round Robin (quntum time = 2)
P P P P P P P P P P P P P P P
1 2 3 4 5 1 2 4 5 1 2 5 1 5 1
0 2 4 6 8
10 12 14 16
18 20 22 24
26 28 30
a) Waktu tunggu untuk
P1 = 5, P2 = 3, P3 = 4, P4 = 2, P5 = 4
b) Rata –rata tunggu
(turn around) = (5 + 3 + 4 + 2 + 4)/5 =
3,6
b. Menggunakan
Algoritma Priority
P2 P5 P1 P P4
1
0
6
14
24 26
30
a) Waktu tunggu untuk
P1 = 14, P2 = 0, P3 = 24, P4 = 26, P5 = 6
b) Rata –rata tunggu
(turn around) = (14 + 0 + 4 + 24 + 26 + 6)/5
= 14
c. Menggunakan
algoritma shortest job first
a) Waktu tunggu untuk
P1 = 0, P2 = 16, P3 = 10, P4 = 12, P5 = 22
b) Rata –rata tunggu
(turn around) = (0 + 16 + 10 + 12 + 22 )/5
= 12
3. a. menggunakan
Algoritma FCFS
P1
|
P2
|
P3
|
0 8 12 13
Waktu tunggu P1= 0, P2 = 8, P3 = 12
Rata – rata waktu
tunggu (turn around) = (0 + 8 + 12) / 3 = 6,6
b. menggunakan
Algoritma SJF non preemptive
P1
|
P2
|
P3
|
0 8 9 13
Waktu tunggu P1 = 0
P2 = 9 -0,4 = 8,6
P3 = 8 -1 = 7
Rata – rata waktu
tunggu (turn around) = (0 + 8,6 + 7) / 3 = 5,2
c. Menggunakan
algoritma SJF preemptive / STRF
P1
|
P2
|
P3
|
P2
|
P1
|
0 0,4 1 2 5,4 13
Waktu tunggu untuk P1
= 5 – 0 = 5
P2 = 4,8 – 0,4 = 4,4
P3 = 1 – 1 = 0
Rata – rata waktu
tunggu (turn around) = (5 + 4,4+ 0) / 3 = 3,13
d. Menggunakan
Algoritma Round Robin(quantum time = 1)
P1
|
P2
|
P3
|
P1
|
P2
|
P1
|
P2
|
P1
|
P2
|
P1
|
P1
|
P1
|
P1
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13
Waktu tunggu untuk P1
= 8, P2 = 4, P3 =2
Rata – rata waktu
tunggu (turn around) = (8 + 4+ 2) / 3 = 4,6
4. Hubungan antara
pasangan algoritma
a. Priority dan SJF
Algoritma SJF adalah algoritma
priority untuk menyelesaikan suatu kasus khusus.
b. Priority dan FCFS
Algoritma FCFS adalah
algoritma priority yang memiliki prioritas sama.
c.Round Robin dan
FCFS
Algoritma Round Robin
adalah algoritma FCFS yang bersifat preemptive dan menggunakan time – sharing.
BAB 5 (SIRKONISASI PROSES)
Latihan Soal 5 :
1. Apa yang dimaksud
dengan race condition?
2. Apakah yang
dimaksud dengan critical section? Untuk menyelesaikan masalah critical section,
ada tiga hal yang harus dipenuhi, sebutkan dan jelaskan!
3. Bagaimana algoritma
Bakery untuk sirkonisasi banyak proses (n proses) ?
4. Apa yang dimaksud
dengan semaphore dan sebutkan operasi pada semaphore
5. Bagaimana struktur
semaphore yang digunakan untuk menyelesaikan permasalahan :
a. bounded buffer
problem.
b. reader and writer
problem.
c. dining philosophers
problem.
Jawaban
1. Race Condition
adalah suatu kondisi dimana beberapa proses mengakses dan memanipulasi suatu
data secara konkuren. Nilai akhir dari data tersebut tergantung dari proses
mana yang terakhir selesai dieksekusi.
2. critical section
adalah bagian dari code proses yang berisi code – code untuk memanipulasi suatu
data.
Solusi yang baik
harus memenuhi 3 syarat berikut:
1. Mutual
Exclution
Tidak ada proses yang
menjalankan critical section bersamaan.
2. Terjadi kemajuan
(Progress)
Proses yang sedang
menjalakan remainder sectionnya, tidak boleh menjalankan critival secton
berikutnya sebelum proses lain menyelesaikan critical sectionnya.
3. Ada batas waktu
(Bounded Waiting)
Ada batas waktu suatu
proses dapat menjalankan critical sectionnya.
3. Algoritma Bakery
adalah algoritma yang digunakan untuk pemecahan yang digunakan untuk pemecahan
permasalahan cricial section pada n proses. Sebelum memasuki critical section,
proses menerima nomor. Proses yang mempunyai nomor terkecil dapat memasuki
critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j
maka Pi dilayani terlebih dahulu, sebaliknya Pj akan dilayani lebih dahulu.
Skema pemberian nomor selalu membangkitkan nomor dengan menaikan nilai urut
misalnya 1, 2, 3, 3, 3, 3, 4, 5,.... pada algoritma bakery terdapat notasi
<= untuk urutan nomor (ticket #, process id #) sebagai berikut :
(a,b) < (c,d) if a
< c pr if a = c and b < d
Max (a0,..., an -1)
is a number. K, such that k ≥ ai for i – 0,
.....,n – 1
Variable umum yang
digunakan adalah :
Boolean cloosing [n];
Int number [n];
Struktur data diatas
diinisialisasi falsedan 0. Struktur dari proses Pi adalah :
D0 {
Cloosing[i] = true;
Number[i] =
max(number[0],
Number[1], ...,
number [n – 1])+1;
Cloosing[i] = false;
For (j=0; j < n;
j++) {
While (cloosing[j]) ;
While ((Number[j] ! = 0 )&& (Number[j] ,j <
(Number[i],i)) ;
}
Critical section
Number[i] = 0;
Remainder section
} while (1);
4. Semaphore adalah sebuah struktur data
komputer yang digunakan untuk sikronisasi proses, yaitu untuk memecahkan
masalah dari mana lebih dari satu proses atau thread dijalankan secara
bersamaan dan harus diatur urutan kerjanya.
Operasi pada
semaphore:
1. Operasi Down (P)
a. Operasi ini
menurunkan nilai semaphore.
b. Jika nilai
semaphore menjadi non positif maka proses yang mengeksekusinya diblocked.
2. Operasi Up (V)
a. Operasi ini
menaikan nilai semaphore.
b. Jika suatu proses
atau lebih telah di blocked pada suatu semaphore tak dapat menyelesaikan
operasi Down. Maka salah satu dipilih oleh sistem dan dibolehkan menyelesaikan
operasi Down-nya.
c. Urutan proses yang
dipilih tidak ditentukan oleh Dijkstra dapat dipilih secara acak, FIFO dan lain
– lain sesuai kepentingan.
d. Operasi UP
menaikan nilai semaphore. Memindahkan dari antrian dan menempatkan proses ke
antrian.
5. a. Bounded Buffer Problem
Untuk menyelesaikan
permasalahan bounded buffer menggunakan semaphore menggunakan variable umum
berikut:
Semaphore full,
empty, mutex ;
Inisialsisasi untuk
variable diatas.
Full = 0, empty = n ,
mutex = 1.
Struktur untuk
produsen adalah
Do {
...
Menghasilkan item
pada nextp
...
Wait (empty);
Wait (mutex);
...
Menambah nextp ke
buffer
...
Signal (mutex);
Signal (full);
} while (1);
Sedangkan struktur
program untuk konsumen adalah
D0 {
Wait (full);
Wait (mutex);
...
Mengambil item dari
buffer ke nextc
....
Signal (mutex);
Signal (empty);
....
Menambahkan item pada
nextc
...
} while (1);
b.
Reader and writer problem
variable umum yang
digunakan adalah semaphore mutex, wrt;
inisialisasi variable
diatas adalah mutex = 1, wrt = 1, readcount = 0.
Struktur proses
writer adalah
Wait(wrt);
...
Menulis
...
Signal(wrt);
Sedangkan struktur
proses reader adalah
Wait(mutex);
Readcount++;
If
(readcount == 1)
Wait(rt);
Signal(mutex);
...
Membaca
...
Wait(mutex);
Readcount--;
If
(readcount == 0)
Signal
(wrt);
Signal(mutex):
c. Dining
philosophers problem
struktur data yang
digunakan untuk menyelesaikan permasalahan ini dengan semaphore adalah
semaphore
chopstick[5];
dimana semua nilai
array dinisialisasi 1. Struktur program untuk filosof ke i adalah
do {
wait
(chopstick[i])
wait
(chopstick[(i+1) % 5])
...
Makan
...
Signal (chopstick[i]);
Signal
(chopstick[(i+1) % 5]);
....
Berfikir
...
}
while (1);
BAB 6 (Deadlock)
Latihan Soal 6 :
1. Apa yang dimaksud
dengan sumber daya? Berikan contohnya
2. Apa yang dimaksud
deadlock?
3. Sebutkan 4 kondisi
yang menyebabkan deadlock
4. Sebutkan cara
mencegah deadlock dari 4 kondisi tersebut pada soal 3.
5. Diketahui snapshot
dari suatu sistem :
Allocation Max Avaiable
A B C D A B C D A B C D
P0 0 0 1 2 0
0 1 2 1 5 2 0
P1 1 0 0 0 1 7 5 0
P2 1 3 5 4 2 3 5 6
P3 1 6 3 2 1 6 5 2
P4 0 0 1 4 0 6 5 6
Jawablah pertanyaan
berikut :
a. Bagaimana isi
matrik Need?
b. Apakah sistem
dalam state selamat?
c. Jika proses P1
meminta (0,4,2,0) dapatkah permintaan dipenuhi segera?
Jawaban
1. Sumber daya adalah
suatu nilai potensi yang dimiliki oleh suatu materi atau unsur tertentu dalam
kehidupan. Sumber daya tidak selalu bersifat fisik, tetap juga non – fisik.
Sumber daya yang dapat pulih atau terbarukan (renewable resources) dan sumber
daya tak terbarukan ( non - renewable resources).
Contohnya : sumber
daya berulang – ulang dan sumber daya sekali pakai.
2. Deadlock adalah
suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain
untuk melapaskan resource yang sedang dipakai. Deadlock juga diartikan sebagai
masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource
yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
3. 4 kondisi yang
menyebabkan deadlock :
1. Mutual Exclusion :
hanya satu proses pada satu waktu yang dapat menggunakan sumber daya.
2. Genggam dan
Tunggal (hold and wait) : suatu proses membawa sedikitnya satu sumber daya
menunngu mendapatkan tambahan sumber daya baru yang dibawa oleh proses.
3. Non – Preemption :
sebuah sumber daya dapat dibebaskan dengan sukarela oleh proses yang
memegangnya setelah proses menyelesaikan task.
4. Mengunggu secara
sirkuler (circualwait) : terdapat sekumpulan proses {P0, P1,...., P0} yang
menunggu sumber daya dimana P0 menunggu sumber daya yang dibawa P1, P1
mengunggu sumber daya dimana P2 dan seterusnya, Pn-1 menunggu sumber daya yang
dibawa oleh Pn, dan Pn menunggu sumber daya dibawa Po.
4. mencegah deadlock
dilakukan dengan meniadakan salah satu dari syarat perlu sebagai berikut :
1. Mencegah Mutual
Exclusion
Mutual Exclusion benar
– benar tak dapat dihindari. Hal ini dikarenakan tidak ada sumber daya yang
dapat digunakan bersama – sama, jadi sistem harus membawa sumber daya yang
tidak dapat digunakan bersama – sama.
2. Mencegah Hold and
Wait
Untuk mencegah hold
and wait, sistem harus menjamin bila suatu proses meminta sumber daya, maka
proses tersebut tidak sedang memegang sumber daya yang lain. Proses harus
meminta dan dialokasikan semua sumber daya yang diperlukan sebelum proses
memulai eksekusi atau mengijinkan proses meminta sumber daya hanya jika proses
tidak membawa sumber daya lain. Model ini mempunyai utilitas sumber daya yang
rendah dan kemungkinan terjadi starvation jika proses membutuhkan sumber daya
yang popular sehingga terjadi keadaan menunggu yang tidak terbatas karena
setidaknya satu dari sumber daya yang dibutuhkannya dialokasikan untuk proses
yang lain.
3. Mencegah Non
Preemption
Peniadaan
non preemption mencegah proses – proses lain harus menunggu. Seluruh proses
menjadi preemption, sehingga tidak ada tunggu menunggu. Cara mencegah kondisi
non preemption :
a.
jika suatu proses yang membawa beberapa sumber daya meminta sumber daya lain
yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut, maka
semua sumber daya yang sedang dibawa proses tersebut harus dibebaskan.
b.
Proses yang sedang dalam keadan menungggu, sumber daya yang dibawanya ditunda
dan ditambahkan pada daftar sumber daya.
c.
Proses akan direstart kembal hanya jika dapat memperoleh daya yang lama dan
sumber daya baru yang diminta.
4.
Mencegah Kondisi Menunggu Sirkular
Sistem
mempunyai total permintaan global untuk setiap tipe sumber daya. Proses dapat
meminta proses kapanpun menginginkannya, tapi permintaan harus dibuat terurut
secara numerik. Setiap proses yang membutuhkan sumber daya dan memintanya maka
nomor urut akan dinaikan. Cara ini tidak akan menimbulkan siklus, masalah yang
timbul adalah tidak ada cara pengurutan nomor sumber daya yang memuaskan semua
pihak.
5. a.
isi matrik need didefinisikan dengan max – allocation
Need
A B C
P0 7 4 3
P1 1 1 2
P2 6 0 0
P3 0 1 1
P4 4 3 1
Sistem
dalam keadaan state selamat dengan urutan <P1, P3, P4, P2, P0> yang
memenuhi kriteria algoritma safety. Misalnya proses P1 meminta tambahan anggota
tipe sumber daya C sehingga Request1 = (1, 0, 2). Untuk menentukan apakah
permintaan dapat segera dipenuhi, pertama harus diperiksa apakah request1 ≤
avaiable ((1, 0, 2) ≤ (3, 3, 2)) ternyata benar. Maka akan diperoleh state baru
berikut :
Allocation
need avaiable
A B C A B C A B C
P0 0 1 0 7 4 3 2
30
P1 3 0 2 0 2 0
P2 3 0 1 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1
Kemudian harus
ditentukan apakah sistem berada dalam state selamat , setelah mengeksekusi
algoritma safety ternyata urutan memenuhi criteria safety. Setelah sistem
berada pada state diatas, permintaan (3, 3,0) oleh P4 tidak dapat dipenuhi
karena sumber daya tidak tersedia. Permintaan (0, 2, 0) oleh P1 juga tidak
dapat dipenuhi karena meskipun sumber daya tersedia, state hasil tak selamat.
b. Sistem dalam state
tidak selamat
c. Dapat
BAB 7 (MANAJEMEN MEMORY)
Latihan
Soal 7 :
1. Terdapat partisi
memori 100K, 500K, 200K, 300K dan 600K, bagaimana algoritma First-fit, Best-fit
dan Worst-fit menempatkan proses 212K, 417K, 112 K dan 426K (berurutan) ?
Algoritma mana yang menggunkan memori secara efisien?
2. Apa yang dimaksud
dengan fragmentasi eksternal dan fragmentasi internal ?
3. Diketahui ruang
alamat logika dengan 8 page masing – masing 1024 word dipetakan ke memori fisik
32 frame.
4. Berapa bit logika
alamat ?
5. Berapa bit
alamat fisik?
6. Diketahui sistem
paging dengan page table disimpan di memori.
7. Jika acuan ke
memori membutuhkna 200 nanosecond, berapa lama waktu melakukan paging ?
8. Jika ditambahkan
associative register, dan 75 persen dari semua acuan ke page – table ditemukan
dalam associative register, berapa efective access time (EAT) acuan ke memori ?
(diasumsikan bahwa menemukan entri pada page table di associative register
membutuhkan waktu 0, jika entri ada).
Jawaban
1. First – fit :
alokasi lubang pertama yang cukup untuk proses.
Best – fit :alokasi
lubang terkecil yang cukup untuk proses. Strategi ini memerlukan pencarian
keseluruhan lubang, kecuali bila ukuran sudah terurut.
Worst – fit : alokasi
lubang terbesar yang cukup untuk proses. Strategi ini memerlukan pencarian
keseluruhan lubang, kecuali disimpan berdasarkan urutan ukuran.
Diantara algoritma
diatas, first-fit dan best-fit lebih baik dibandingkan worst-fit dalam hal
menurunkan waktu dan utilitas penyimpanan. Tetapi first-fit dan best-fit lebih
baik dalam hal utilitas penyimpanan tetapi first-fit lebih cepat.
2. a. fragmentasi
eksternal
Terjadi pada situasi
dimana terdapat cukup ruang memori untuk memenuhi permintaan, tetapi tidak
dapat langsung dialokasikan karena tidak berurutan. Fragmentasi eksternal
dilakukan pada algoritma alokasi dinamis, terutama strategi first- dan
berst-fit.
b.
fragmentasi Internal
Terjadi
pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang
diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak
digunakan. Pada multiple parition, fragmentasi internal mungkin terjadi pada
situasi berikut. Misalnya terdapat lubang 18464 byte, dan proses meminta 18462
byte. Alokasi dilakukan sesuai permintaan maka sisa lubang 2 byte. Penyimpanan
lubang ini akan memerlukan memori lebih besar dari lubang itu sendiri.
Pendekatannya adalah dengan mengalokasikan lubang yang sangat kecil sebagai
bagian dari permintaan yang besar.
3. Ruang alamat
logika dari suatu proses dibagikan kedalam 2 partisi :
Partisi 1 terdiri dari
8k segmen yang pribadi (private) untuk proses tersebut.
Partisi 2 terdiri
dari 8k segmen yang digunakan bersama untuk semua proses.
Informasi mengenai
partisi pertama disimpan dalam local descriptor table (LDT) sedangkan informasi
mengenai partisi kedua disimpan dalam global descriptor table (GDT). Setiap
entry pada tabel LDT dan GDT terdiri dari 8 byte, dengan informasi detail
tentang segmen tertentu termasuk lokasi basis dan panjang segmen. Alamat logika
adalah pasangan (selector, offset), dimana selector sebanyak 16 bit. 1 page =
64 byte, jadi page 0 akan dipetakan ke frame 8, maka alamat logika 0 akan
dipetakan ke alamat fisik (8 * 64)+0 = 512. Keadaan memori logika dapat dilihat
sebagai berikut :
Alamat logika 50
berada di page 0, offset 50 sehingga alamat fisiknya (8 * 64) + 50 = 562.
Alamat logika 121
berada di page 1, offset 57 sehingga alamat fisiknya (2 * 64) + 57 = 185.
Alamat logika 380
berada di page 5, offset 60 sehingga
alamat fisiknya (1 * 64) + 60 = 124.
4. alamat logika :
Bit alamat logika dapat dipecah atas nomor segmen dan alamat offset. Misalnya,
nomor segmen menggunakan 4 bit atas alamat logika, yang berarti terdapat
maksimal 212 = 4 kbyte.
5. alamat fisik : Bit alamat fisik pada memori
fisik pada alamat awal 8224 sehingga pada saat dieksekusi alamat 4848 akan
ditranlasi menjadi 8224 + 752 = 8976.
6. paging merupakan
kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat
logika tidak berurutan, mengijinkan sebuah proses dialokasikan pada memori
fisik yang terakhir tersedia, semua daftar frame yang bebas disimpan untuk
menjalankan program dengan ukuran n page, perlu menemukan n frame bebas dan meletakan
program pada frame tersebut. Tabel page digunakan untuk menterjemahkan alamat
logika ke alamat fisik.
7. lama waktu
melakukan paging adalah 40ms.
8. Waktu akses
afektif = 0,75_(200 nanodetik) + 0,25_(400 nanodetk) = 250 nanodetik.
BAB 8 (VIRTUAL MEMORY)
Latihan Soal 8 :
1. Diketahui sistem
memory demand paging. Page table menggunakan register. Membutuhkan 8 milisecond
untuk melayani page fault jika frame kosong tersedia atau page yang di replace
tidak dimodifikasi dan 20 milisecond jika page yang di-replace dimodifikasi.
Waktu akses memory adalah 100 nanosecond. Diasumsikan page yang di-replace akan
dimodifikasi adalah 70 persen dari waktu. Berapa rata-rata page fault yang
diterima untuk affective acces time tidak lebih dari 200 nanosecond?
2. Diketahui string
acuan dari page
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
Berapa banyak page
fault yang terjadi untuk algoritma page replacement berikut dengan satu, dua,
tiga , empat, lima, enam atau tujuh frame? Ingat bahwa semua frame
diinisialisasi kosong, sehingga page unik pertama akan bernilai masing – masing
satu fault
a. LRU
b. FIFO
c. Optimal
3. Diketahui array 2
dimensi A sebagai berikut :
Var A : array[1..10]
of array[1..100] of integer
Dimana A[1][1]berada
pada lokasi 200 pada sistem page memory dengan page-page berukuran 200. Suatu
proses kecil pada page 0 (lokasi 0 s/d 199) untuk manipulasi matriks, sehingga
setiap intruksi dimulai dari page 0.
Untuk 3 frame page,
berapa banyak page falut yang dibangkitkan oleh loop inisialisasi array berikut
menggunakan LRU dan asumsi frame page 1 sudah terdapat proses dan 2 frame page lainnya
diinisialisasi kosong.
a. for (j =1; j
<=100; j++)
for (i =1; i <=100; i++)
A[i] [j] = 0;
b. for (in=1; i
<=100; i++)
for (j =1; j <=100; j++)
A[i] [j] := 0;
4. Diketahui sistem
demand paging dengan paging disk mempunyai waktu akses dan transfer rata-rata 20
milisec. Alamat ditranslasikan melalui page table di memory. Dengan waktu akses
1 microsec per akses memory. Sehingga acuan memory melalui page table sama
dengan 2 kali akses memory. Untuk memperbaiki waktu, ditambahkan associative
memory yang menurunkan waktu akses menjadi satu acuan memori. Jika entri page
table berada di associative memory. Diasumsikan 80 % akses pada associative
memory dan sisanya (20%). 10%nya (atau 2 persen dan total) menyebabkan page
fault. Berapakah effective access time-nya?
Jawab
1. Waktu akses memory
= 200 nanosecond
Rata-rata waktu
page-fault service time = 8 miliseconds
1ms = 106 ns
EAT = ((1 – p) x 200)
+ (p x (8 miliseconds))
=
((1 – p) x 200) + (p x (8,000,000))
=
200 + (p x 7,999,800)
Jika 1 dari 1.000
kali akses terjadi fault, maka EAT = 8.2 microseconds
2. a. Lebih baik dari
pada FIFO (15), tetapi lebih buruk dari OPT(9)
Halaman
7 kesalahan : 1 frame : 7 -1 -1 waktu : 1
0 2 7 0 -1 1 2
1 3 7 0 1 1 2 3
2 4 2 0 1 4 2 3
0 4 2 0 1 4 5 3
3 5 2 0 3 4 5 6
0 5 2 0 3 4 7 6
2 7 4 0 2 8 7 9
3 8 4 3 2 8 10 9
0 9 0 3 2 11 10 9
3 9 0 3 2 11 12 9
2 9 0 3 2 11 12 13
1 101 3 2 14 12 13
2 101 3 2 14 12 15
0 111 0 2 14 16 15
1 111 0 2 17 16 15
7 121 0 7 17 16 18
0 121 0 7 17 19 18
1 121 0 7 20 19 18
b. mem> alg 0
mem > mode 1
mem> init 8 3
mem> r 7 r 0 r 1 r
2 r 0 r 3 r 0 r 4 r 2 r 3 r 0 r 3 r 2 r
1 r 2 r 0 r 1 r 7 r 0 r 1
page 7 faults : 1
frames : 7 -1 -1 time : 1
0 2 7 0 -1 1 2
1 3 7 0 1 1 2 3
2 4 2 0 1 4 2 3
0 4 2 0 1 4 2 3
3 5 2 3 1 4 6 3
0 6 2 3 0 4 6 7
4 7 4 3 0 8 6 7
2 8 4 2 0 8 9 7
3 9 4 2 3 8 9 10
0 10 0 2 3 11 9 10
3 10 0 2 3 11 9 10
2 10 0 2 3 11 9 10
1 11 0 1 3 11 14 10
2 12 0 1 2 11 14 15
0 12 0 1 2 11 14 15
1 12 0 1 2 11 14 15
7 13 7 1 2 18 14 15
0 14 7 0 2 18 19 15
1 15 7 0 2 18 19 20
c. mem> nogo
mem>
r 7 r 0
r 1 r 2 r 0 r 3 r 0 r 4 r 2 r 3 r 0 r 3
r 2 r 1 r 2 r 0 r 1 r 7 r 0 r 1
mem> go
page: 7 faults: 1
frames : 7 -1 -1
0 2 7 0 -1
1 3 7 0 1
2 4 2 0 1
0 4 2 0 1
3 5 2 0 3
0 5 2 0 3
4 6 2 4 3
2 6 2 4 3
3 6 2 4 3
0 7 2 0 3
3 7 2 0 3
2 7 2 0 3
1 8 2 0 1
2 8 2 0 1
0 8 2 0 1
1 8 2 0 1
7 9 7 0 1
0 9 7 0 1
1 9 7 0 1
4. Diketahui : waktu
akses 20ms rata – rata transfer 20 ms,memory access = 400 ns
EAT = (1-p) x (400) + p x (20ms)
= (1-p) x (400) + p x
20000000
= 400 + 19999600 x p
410>400 + 20000000 x p
10 > 20000000 x p
P< 0,0000005
BAB 9 (SISTEM FILE)
Latihan 9 :
1. Apakah keuntungan
dan kerugian menyimpan nama pembuat program pada atribut file (seperti pada so
machintosh)
2. Terdapat beberapa
metode akses misalnya sequential access dan direct acces. Jelaskan!
3. Sebutkan dan
jelaskan tree-structured directory dan acyclic-graph directory.
4. Diketahui sebuah
system mendukung 5000 user. Misalnya akan mengijinkan 4990 user dapat mengakses
sebuah file. Bagaimana spesifikasi proteksi pada UNIX?
Jawaban
1. misalnya sistem
operasi membutuhkan file executable yang mempunyai struktur khusus sehingga
dapat menentukan dimana letak memory dan lokasi dari intruksi pertama. Beberapa
sistem operasi menggunakan sekumpulan sistem pendukung struktur file dengan
sejumlah operasi khusus untuk menipulasi file dengan struktur tersebut. Hal ini
menjadi kelemahan pada sistem operasi yang mendukung struktur file lebih dari
satu. Jika sistem operasi menentukan 10 struktur file berbeda, maka perlu
menyertakan kode untuk mendukung struktur file tersebut. Setiap file perlu
dapat didefinisikan sebagai satu dari tipe file yang didukung oleh sistem
operasi.
Beberapa sstem
operasi seperti UNIX dan MS-DOS hanya mendukung sejumlah struktur file. UNIX
menentukan setiap file merupakan deret 8 bit byte dan bit tersebut tidak
diterjemahkan oleh sistem operasi. Skema ini mempunyai fleksibilitasi maksimum,
tetapi sedikit dukungan. Setiap program aplikasi harus menyertakan kode sendiri
untuk menerjemahkan file input ke dalam struktur yang tepat. Setidaknya
menjalankan program semua SO harus
mendukung sedikitnya satu struktur file executable sehingga sistem dapat load.
2. a. Sequential
access (Akses Berurutan)
Akses berurutan
merupakan metode akses paling sederhana. Informasi pada file diproses secara
berurutan, satu record diakses setelah record yang lain. Metode akses ini
berdasarkan model tape dari suatu file yang bekerja dengan perangkat
sequential-access atau random access.
Operasi pada akses
berurutan terdiri dari:
Read text
Write text
Reset
No read after last
write (rewrite)
Operasi read membaca
bagian selanjutnya dari file dan otomatis menambah file pointer yang melacak
lokasi I/O. Operasi write menambah ke akhir file dan ke akhir material
pembacaan baru (new end of file). File dapat direset ke awal dan sebuah program
untuk meloncat maju atau mundur ke n record.
b. Direct Access
(Akses Langsung)
Metode akses langsung
berdasarkan model disk daru suatu file, memungkinkan acak ke sembarang blok
file, memungkinkan blok acak tersebut dibaca atau ditulis.
Operasi pada akses
langsung ini terdiri dari:
Read n
Write n
Position to n
Read next
Write next
Rewrite n
Operasi file
dimodifikasi untuk memasukan nomor blok sebagai parameter. Nomor blok
ditentukan user yang merupakan nomor blok relatif, misalnya indeks relatif ke
awal dari file. Blok relatif pertama dari file adalah 0, meskipun alamat disk
absolut aktual dari blok misalnya 17403 untuk blok pertama. Metode ini
mengijinkan sistem operasi menentukan dimana file ditempatkan dan mencegah user
mengakses posisi dari sistem file yang bukan bagian file tersebut.
3. a. Tree-structured
directory
Dalam struktur ini,
setiap pengguna dapat membuat subdirektori sendiri dan mengorganisasikan berkas
– berkasnya. Dalam penggunaan normal, tiap pengguna memiliki apa yang disebut
current directory. Current directory mengandung berkas – berkas yang baru –
baru ini digunakan oleh pengguna.
b. Acyclic-graph
directory
pada diektory acyclic
graph memungkinkan direktori mempunyai subdirektor dan file yang digunakan
bersama – sama. File dan subdirektori yang sama mungkin berada pada dua
direktori yang berbeda. Dan struktur ini menyadiakan fasilitas sharing.
4. Pada sistem UNIX,
proteksi direktori ditangani sama dengan proteksi file, misalnya, diasosiasikan
dengan setiap subdirektory menggunakan owner, group dan universe (others)
sebagai 3 bit RWX. Informasi yang terdapat pada file dari kiri ke kanan terdiri
dari proteksi file atau direktory, jumlah link ke file, nama pemliki, nama
group, ukuran file dalam byte, tanggal membuat, nama file.
-rw-rw-r-- 1 pbg staff 31200
Sep 3 08:30
intro.ps
drwx------ 5 pbg staff 512
Jul 8 09:33
private/
drwxrwxr-x 2 pbg staff 512
Jul 8 09:35
doc/
drwxrwx--- 2 pbg student 512 Aug
3 14:13
student-proj/
-rw-r—-r-- 1 pbg staff 9423
Feb 24 1993 program.c
-rwxr-xr-x 1 pbg staff 20471
Feb
24 1993
program
drwx—-x--x 4 pbg faculty 512
Jul 31 10:31
lib/
drwx------ 3 pbg staff 1024 Aug 29 06:52 mail/
drwxrwxrwx 3 pbg
staff 512
Jul 8 09:35
test/
BAB 10 (IMPLEMENTASI SISTEM
FILE)
Latihan 10:
1. Sistem file
biasanya diimplementasikan dalam struktur layer atau modular. Jelaskan struktur
layer pada system file.
2. Ada beberapa cara
file dialokasikan pada ruang disk, yaitu contigous, linked atau berindeks.
Jelaskan ketiga cara alokasi file diatas dan berikan contoh.
3. Sebutkan dan
jelaskan cara untuk memperbaiki sistem dari kegagalan sehingga tidak kehilangan
data atau data inconsistency.
4. Apakah
permasalahan yang timbul bila sebuah system memperbolehkan system file di mount
secara simultan lebih dari satu lokasi.
Jawaban
1.
Gambar. Layer system file
a. Pada level
terendah I/O control device driver dan interrupt handler untuk mengirim
informasi antara memori dan sistem disk.
b. Basic file system
beris perintah bagi device driver untuk membaca dan meulis blok fisik pada
disk.
c. File organization
module berisi modul untuk mengetahui blok logika pada blok fisik.
d. Logical file
system menggunakan struktur direktori untuk memberikan ke file organization
module informasi tentang kebutuhan terakhir.
2. a. Alokasi Berurutan (Contigous Allocation)
Pada alokasi
berurutan, setiap file menempati sekumpulan blok yang berurutan pada disk.
Model ini sangat sederhana karena hanya membutuhkan lokasi awal (blok#) dan
panjang (jumlah blok). Akses pada blok disk dilakukan secara random dan memakan
banyak ruang (permasalahan dynamic storage-allocation). File yang disimpan
secara berurutan tidak dapat berkembang. Beberapa sistem file yang baru
(misalnya Veritas File System) menggunakan skema alokasi berurutan yang
dimodifikasi. File sistem extend-based mengalokasikan blok pada disk secara
berkembang (extent). Extent adalah blok berurutan pada disk. Extent
dialokasikan untuk alokasi file. Sebuah file terdiri dari satu atau lebih
extent.
b. Alokasi
Berhubungan (Linked Allocation)
Pada
alokasi berhubungan, setiap file adalah sebuah linked list dari blok – blok
terpisah pada disk. Pada setiap blok terdapat satu pointer yang menunjuk ke
blok lain. Alokasi berhubungan mempunyai bentuk yang sederhana, hanya
memerlukan alamat awal. Sistem manajemen ruang bebas pada alokasi berhubungan
tidak memakan banyak ruang. Model ini tidak menggunakan random access. Blok
yang diakses adalah blok ke-q pada rantai link dari blok pada file. Perpindahan
ke blok = R+1. Contoh sistem file yang menggunakan alokasi berhubugan adalah
file-allocation table (FAT) yang digunakan MS-DOS dan OS/2.
c.
Alokasi Berindeks (Indexed Allocation)
Pada
alokasi berindeks, terdapat satu blok yang berisi pointer ke blok-blok file.
Alokasi berindeks berupa bentuk logika. Pada alokasi berindeks, memerlukan
tabel indeks yang membawa ponter ke blok-blok file yang lain. Akases dilakukan
secara random.
3. Untuk memperbaiki sistem file dilakukan dengan
memeriksa konsistensi dengan cara membandingkan data pada struktur direktori
dengan blok data pada disk dan mencoba memperbaiki inkonsistensi. Selain itu
juga dapat menggunakan program sistem untuk back up data dari disk ke
penyimpanan lain (floopy disk, magnetic tape). Perbaikan akan recover
menghilangkan file atau disk dengan restoring data dari beckup.
4.
Mounting Sistem Berkas
Seperti
halnya sebuah berkas yang harus dibuka terlebih dahulu sebelum digunakan, sistem
berkas harus dimount terlebih dahulu sebelum sistem berkas tersebut siap untuk
memproses dalam sistem. Sistem operasi diberikan sebuah alamat mounting (mount
poin) yang berisi nama device yang bersangkutan dan lokasi dari device
tersebut.