JAWABAN UAS SISTEM OPERASI !!!!!
1. -Penjadwalan preemptive= Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari keadaan running ke ready atau proses berpindah dari waiting ke ready.
-Penjadwalan non preemptive= Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari running ke waiting atau apabila proses berhenti.
-Penjadwalan non preemptive= Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari running ke waiting atau apabila proses berhenti.
2.
3. a). Menggunakan Algoritma FCFS
Waktu tunggu untuk P1 = 0, P2 = 8, P3 = 12
Rata-rata waktu tunggu (turn around) = (0 + 8 + 12) / 3 = 6,6
b). Menggunakan Algoritma SJF non preemptive

Waktu tunggu untuk 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 / SRTF

Waktu tunggu untuk P1 = 0, P2 = 8, P3 = 12
Rata-rata waktu tunggu (turn around) = (0 + 8 + 12) / 3 = 6,6
b). Menggunakan Algoritma SJF non preemptive

Waktu tunggu untuk 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 / SRTF
3.

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)

Waktu tunggu untuk P1 = 8, P2 = 4, P3 = 2
Rata-rata waktu tunggu (turn around) = (8 + 4 + 2) / 3 = 4,6.

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)

Waktu tunggu untuk P1 = 8, P2 = 4, P3 = 2
Rata-rata waktu tunggu (turn around) = (8 + 4 + 2) / 3 = 4,6.
4. 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.
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.
5. Race condition adalah suatu kondisi dimana dua atau lebih proses mengakses shared memory / sumber daya pada saat yang bersamaan dan hasil akhir dari data tersebut tergantung dari proses mana yang terakhir selesai dieksekusi sehingga hasil akhirnya terkadang tidak sesuai dengan yang dikehendaki.
6. Suatu system terdiri dari n proses dimana semuanya berkompetisi menggunakan data yang digunakan bersama-sama. Masing-masing proses mempunyai sebuah kode segmen.
Sebuah solusi dari permasalahan critical section harus memenuhi 3 syarat sebagai berikut :
-Mutual Exclusion. Apabila proses Pi menjalankan critical section-nya, maka tidak ada proses lain yang dapat menjalankan critical section.
-Progress. Apabila tidak ada proses yang menjalankan critical section-nya dan terdapat beberapa proses yang akan memasuki critical section-nya, maka hanya proses-proses itu yang tidak diproses di dalam daerah pengingat (remainder) dapat ikut berpartisipasi di dalam keputusan proses mana yang akan memasuki critical section selanjutnya, dan pemilihan ini tidak dapat ditunda tiba-tiba.
-Bounded Waiting. Terdapat batasan jumlah waktu yang diijinkan oleh proses lain untuk memasuki critical section setelah sebuah proses membuat permintaan untuk memasuki critical section-nya dan sebelum permintaan dikabulkan.
Sebuah solusi dari permasalahan critical section harus memenuhi 3 syarat sebagai berikut :
-Mutual Exclusion. Apabila proses Pi menjalankan critical section-nya, maka tidak ada proses lain yang dapat menjalankan critical section.
-Progress. Apabila tidak ada proses yang menjalankan critical section-nya dan terdapat beberapa proses yang akan memasuki critical section-nya, maka hanya proses-proses itu yang tidak diproses di dalam daerah pengingat (remainder) dapat ikut berpartisipasi di dalam keputusan proses mana yang akan memasuki critical section selanjutnya, dan pemilihan ini tidak dapat ditunda tiba-tiba.
-Bounded Waiting. Terdapat batasan jumlah waktu yang diijinkan oleh proses lain untuk memasuki critical section setelah sebuah proses membuat permintaan untuk memasuki critical section-nya dan sebelum permintaan dikabulkan.
7. Algoritma Bakery adalah algoritma yang digunakan untuk pemecahan permasalahan critical section pada n proses. Sebelum memasuki critical section, proses menerima nomo. Proses yang mempunyai nomor terkecil dapat memasuki critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j maka Pi dilayani lebih dahulu, sebaliknya Pj akan dilayani lebih dahulu. Skema pemberian nomor selalu membangkitkan nomor dengan menaikkan 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 or if a = c and b < d
max (a0,…, an-1) is a number, k, such that k ≥ ai for i - 0,…, n – 1
Variabel umum yang digunakan adalah :
boolean choosing[n];
int number[n];
Struktur data diatas diinisialisasi false dan 0. Struktur dari proses Pi adalah :
do {
choosing[i] = true;
number[i] = max(number[0], number[1], …, number [n – 1])+1;
choosing[i] = false;
for (j = 0; j < n; j++) {
while (choosing[j]) ;
while ((number[j] != 0) && (number[j],j < number[i],i)) ;
}
critical section
number[i] = 0;
remainder section
} while (1);
(a,b) < (c,d) if a < c or if a = c and b < d
max (a0,…, an-1) is a number, k, such that k ≥ ai for i - 0,…, n – 1
Variabel umum yang digunakan adalah :
boolean choosing[n];
int number[n];
Struktur data diatas diinisialisasi false dan 0. Struktur dari proses Pi adalah :
do {
choosing[i] = true;
number[i] = max(number[0], number[1], …, number [n – 1])+1;
choosing[i] = false;
for (j = 0; j < n; j++) {
while (choosing[j]) ;
while ((number[j] != 0) && (number[j],j < number[i],i)) ;
}
critical section
number[i] = 0;
remainder section
} while (1);
8. Semaphore adalah alat untuk sinkronisasi yang tidak membutuhkan busy waiting. Semaphore S berupa variable integer. Semaphore hanya dapat diakses melalui operasi atomic yang tak dapat diinterupsi sampai kode selesai. Operasi dari semaphore S adalah wait dan signal berikut :
wait (S):
while S≤ 0 do no-op;
S--;
signal (S):
S++;
Adanya semaphore mempermudah penyelesaian persoalan critical section pada n proses.
wait (S):
while S≤ 0 do no-op;
S--;
signal (S):
S++;
Adanya semaphore mempermudah penyelesaian persoalan critical section pada n proses.
9. a.Bounded-Buffer (Producer-Consumer) Problem
Produsen menghasilkan barang dan konsumen yang akan menggunakannya.
Ada beberapa batasan yang harus dipenuhi, antara lain :
- Barang yang dihasilkan oleh produsen terbatas
- Barang yang dipakai konsumen terbatas
- Konsumen hanya boleh menggunakan barang yang dimaksud setelah produsen
menghasilkan barang dalam jumlah tertentu
- Produsen hanya boleh memproduksi barang jika konsumen sudah kehabisan barang
Untuk penyelesaian permasalahan bounded buffer menggunakan semaphore
menggunakan variabel umum berikut : semaphore full, empty, mutex;
Inisialisasi untuk variable diatas, full = 0, empty = n, mutex = 1. Struktur
program 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
do {
wait(full)
wait(mutex);
…
mengambil item dari buffer ke nextc
…
signal(mutex);
signal(empty);
…
menggunakan item pada nextc
…
} while (1);
b.Reader and Writer Problem
Terdapat dua variasi pada masalah ini, yaitu :
-seorang reader tidak perlu menuggu reader lain untuk selesai hanya karena ada
writer menunggu (reader memiliki prioritas lebih tinggi disbanding dengan writer)
- Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang
bekerja (writer memiliki prioritas yang lebih tinggi)
- Jika terdapat writer dalam critical section dan terdapat n reader yang
menunggu, maka satu reader akan antri di wrt dan n-1 reader akan antri di mutex.
- Jika writer mengeksekusi signal(wrt), maka dapat disimpulkan bahwa eksekusi
adalah menunggu reader atau menunggu satu writer. Variabel 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
Permasalahan dining-philosophers digambarkan pada Gambar 5-2 dimana terdapat 5 filosof yang akan makan. Di sana disediakan 5 supit. Jika filosof lapar, ia akan mengambil 2 supit yaitu di tangan kanan dan kiri. Namun adakalanya hanya diambil supit satu saja. Jika ada filosof yang mengambil 2 supit, maka ada filosof yang harus menunggu sampai supit tersebut diletakkan. Hal ini dapat diimplementasikan dengan wait dan signal.
Struktur data yang digunakan untuk penyelesaian 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);
Produsen menghasilkan barang dan konsumen yang akan menggunakannya.
Ada beberapa batasan yang harus dipenuhi, antara lain :
- Barang yang dihasilkan oleh produsen terbatas
- Barang yang dipakai konsumen terbatas
- Konsumen hanya boleh menggunakan barang yang dimaksud setelah produsen
menghasilkan barang dalam jumlah tertentu
- Produsen hanya boleh memproduksi barang jika konsumen sudah kehabisan barang
Untuk penyelesaian permasalahan bounded buffer menggunakan semaphore
menggunakan variabel umum berikut : semaphore full, empty, mutex;
Inisialisasi untuk variable diatas, full = 0, empty = n, mutex = 1. Struktur
program 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
do {
wait(full)
wait(mutex);
…
mengambil item dari buffer ke nextc
…
signal(mutex);
signal(empty);
…
menggunakan item pada nextc
…
} while (1);
b.Reader and Writer Problem
Terdapat dua variasi pada masalah ini, yaitu :
-seorang reader tidak perlu menuggu reader lain untuk selesai hanya karena ada
writer menunggu (reader memiliki prioritas lebih tinggi disbanding dengan writer)
- Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang
bekerja (writer memiliki prioritas yang lebih tinggi)
- Jika terdapat writer dalam critical section dan terdapat n reader yang
menunggu, maka satu reader akan antri di wrt dan n-1 reader akan antri di mutex.
- Jika writer mengeksekusi signal(wrt), maka dapat disimpulkan bahwa eksekusi
adalah menunggu reader atau menunggu satu writer. Variabel 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
Permasalahan dining-philosophers digambarkan pada Gambar 5-2 dimana terdapat 5 filosof yang akan makan. Di sana disediakan 5 supit. Jika filosof lapar, ia akan mengambil 2 supit yaitu di tangan kanan dan kiri. Namun adakalanya hanya diambil supit satu saja. Jika ada filosof yang mengambil 2 supit, maka ada filosof yang harus menunggu sampai supit tersebut diletakkan. Hal ini dapat diimplementasikan dengan wait dan signal.
Struktur data yang digunakan untuk penyelesaian 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);
10. Sumber daya adalah istilah umum yang dapat merujuk pada setiap komponen dari sistem yang sanggup melakukan perkerjaan. contohnya, processor adalah sumber daya, begitu juga RAM dan disk. Sound card dan network card juga sumber daya walaupun tidak semua hardware adalah sumber daya
Sumber daya (resource): komoditas yg diperlukan oleh proses
Sumber daya dapat berupa:
– serially reusable, contoh: CPU, memory, ruang disk perangkat I/O, file
– consummable – dibuat/ diperlukan oleh proses, contoh: pesan, buffer informasi, interrupt sumber daya habis setelah digunakan, karena itu tidak ada pelepasan sumberdaya
Sumber daya (resource): komoditas yg diperlukan oleh proses
Sumber daya dapat berupa:
– serially reusable, contoh: CPU, memory, ruang disk perangkat I/O, file
– consummable – dibuat/ diperlukan oleh proses, contoh: pesan, buffer informasi, interrupt sumber daya habis setelah digunakan, karena itu tidak ada pelepasan sumberdaya
11. Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
12. -Mutual Exclusion
Proses mengklaim akses eksklusif terhadap sumber daya yang mereka butuhkan
-Kondisi hold-and-wait
Proses yg dialokasikan satu sumber daya dapat meminta sumber daya lainnya
-Kondisi no-preemption
Sumber daya yang telah dialokasikan tidak dapat diambil dengan paksa
-Kondisi circular-wait
Berupa rantai sirkuler yg terdiri dari 2/lebih proses, masing-masing menunggu sumber daya yg dibutuhkan oleh proses lain pada rantai tersebut.
Proses mengklaim akses eksklusif terhadap sumber daya yang mereka butuhkan
-Kondisi hold-and-wait
Proses yg dialokasikan satu sumber daya dapat meminta sumber daya lainnya
-Kondisi no-preemption
Sumber daya yang telah dialokasikan tidak dapat diambil dengan paksa
-Kondisi circular-wait
Berupa rantai sirkuler yg terdiri dari 2/lebih proses, masing-masing menunggu sumber daya yg dibutuhkan oleh proses lain pada rantai tersebut.
13. --> Mencegah kondisi mutual exclusion
– penggunaan sumber daya secara eksklusif merupakan fitur penting utk sinkronisasi
– hindari pengalokasian sumber daya jika tidak benar-benar diperlukan
– usahakan sesedikit mungkin proses mengklaim sumber daya
– spooling sumber daya (mis. printer)
--> Mencegah kondisi hold-and-wait
– Proses harus meminta sumber daya sebelum mulai, tidak bisa mulai sebelum semua sumber daya
yg dibutuhkan diperoleh;
Masalah:
-Sumber daya yg diperlukan mungkin tdk diketahui pada saat proses mulai
-Mengikat sumber daya yg mungkin akan digunakan oleh proses lain
– Alternatif:
• Jika proses membutuhkan suatu sumber daya, lepaskan dulu semua sumber daya yg telah diperolehnya, setelah itu minta kembali semua yg dibutuhkan
--> Mencegah kondisi no-preemption
– Jika proses yg sdg mengakses sumber daya meminta sumber daya lain yg tdk bisa segera dialokasikan utknya, maka semua sumber daya yg sdg dialokasikan pd proses tsb harus dilepas
– Sumber daya yg di-preempted ditambahkan ke sumber daya yg ditunggu oleh proses
– Proses akan di-restart hanya jika proses tsb dpt memperoleh semua sumber daya yg dibutuhkan
– Masalah: dapat menimbulkan starvation
• Minta satu sumber daya pd satu saat; lepaskan sumber daya yg sedang diakses jika meminta sumber daya berikutnya
• Pengurutan sumber daya secara global
– Permintaan harus dilakukan secara terurut
– Req(sumberdaya1), req(sumberdaya2)..
– Mengapa tidak terjadi circular wait?
Pencegahan Deadlock: Two-Phase Locking
Fase 1
– Proses mencoba mengunci semua record yg diperlukan, satu per satu
– Jika record yg diperlukan dikunci, mulai kembali
– (tidak ada aktifitas riil yg dilakukan pd fase 1)
Jika fase 1 berhasil, mulai fase 2
– Lakukan update
– Lepaskan kunci
Mirip dgn meminta semua sumber daya sekaligus Algoritma berfungsi jika programmer dapat mengatur
– berhenti dan restart program
– penggunaan sumber daya secara eksklusif merupakan fitur penting utk sinkronisasi
– hindari pengalokasian sumber daya jika tidak benar-benar diperlukan
– usahakan sesedikit mungkin proses mengklaim sumber daya
– spooling sumber daya (mis. printer)
--> Mencegah kondisi hold-and-wait
– Proses harus meminta sumber daya sebelum mulai, tidak bisa mulai sebelum semua sumber daya
yg dibutuhkan diperoleh;
Masalah:
-Sumber daya yg diperlukan mungkin tdk diketahui pada saat proses mulai
-Mengikat sumber daya yg mungkin akan digunakan oleh proses lain
– Alternatif:
• Jika proses membutuhkan suatu sumber daya, lepaskan dulu semua sumber daya yg telah diperolehnya, setelah itu minta kembali semua yg dibutuhkan
--> Mencegah kondisi no-preemption
– Jika proses yg sdg mengakses sumber daya meminta sumber daya lain yg tdk bisa segera dialokasikan utknya, maka semua sumber daya yg sdg dialokasikan pd proses tsb harus dilepas
– Sumber daya yg di-preempted ditambahkan ke sumber daya yg ditunggu oleh proses
– Proses akan di-restart hanya jika proses tsb dpt memperoleh semua sumber daya yg dibutuhkan
– Masalah: dapat menimbulkan starvation
• Minta satu sumber daya pd satu saat; lepaskan sumber daya yg sedang diakses jika meminta sumber daya berikutnya
• Pengurutan sumber daya secara global
– Permintaan harus dilakukan secara terurut
– Req(sumberdaya1), req(sumberdaya2)..
– Mengapa tidak terjadi circular wait?
Pencegahan Deadlock: Two-Phase Locking
Fase 1
– Proses mencoba mengunci semua record yg diperlukan, satu per satu
– Jika record yg diperlukan dikunci, mulai kembali
– (tidak ada aktifitas riil yg dilakukan pd fase 1)
Jika fase 1 berhasil, mulai fase 2
– Lakukan update
– Lepaskan kunci
Mirip dgn meminta semua sumber daya sekaligus Algoritma berfungsi jika programmer dapat mengatur
– berhenti dan restart program
14.
15. Fragmentasi Eksternal. Dalam kasus first fit dan juga best fit sebagaimana yang telah dijelaskan di atas, pada saat proses dimasukkan atau dipindahkan dari memori, ruang memori yang tidak terpakai akan dipecah menjadi bagian yang kecil (sisa dari alokasi sebuah proses pada sebuah ruang memori).
Fragmentasi Internal. Fragmentasi internal terjadi ketika kapasitas memori yang diberikan ke sebuah proses melebihi besarnya permintaan yang diajukan oleh proses.
16.
17. Pada sistem segmentasi alamat logika pada kode instruksi program juga perlu ditranslasi pada saat dieksekusi. Misalnya sistem memori computer menggunakan alamat 16 bit sehingga maksimal kapasitas memori utama adalah 64 kbyte. 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. Misalnya dalam program terdapat instruksi jump[4848]
18. Dati tabel segmen proses terlihat bahwa segmen 1 dialokasikan pada memori fisik pada alamat awal 8224 sehingga pada saat dieksekusi alamat 4848 akan ditranslasi menjadi 8224 + 752 = 8976.
19. Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame. Memori logika juga dibagi ke dalam blok- blok dg ukuran yang sama yang disebut page. Semua daftar frame yang bebas disimpan. Untuk menjalankan program dengan ukuran n page, perlu menemukan n frame bebas dan meletakkan program pada frame tersebut. Tabel page (page table) digunakan untuk menterjemahkan alamat logika ke alamat fisik.
20. 40 ms
21.
22. Waktu akses memory = 200 nanosecond
Rata-rata waktu page-fault service time = 8 milliseconds
1 ms=106 ns
EAT =((1 – p) x 200) + (p x (8 milliseconds))
= ((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
23.
24.
25.
26.
27. Sequential Access merupakan metode yang paling sederhana. Informasi yang disimpan dalam berkas diproses berdasarkan urutan. Operasi dasar pada suatu berkas adalah tulis dan baca. Operasi baca membaca berkas dan meningkatkan pointer berkas selama di jalur lokasi I/O. Operasi tulis menambahkan ke akhir berkas dan meningkatkan ke akhir berkas yang baru. Metode ini didasarkan pada tape model sebuah berkas, dan dapat bekerja pada kedua jenis device akses (urut mau pun acak).
Direct Access merupakan metode yang membiarkan program membaca dan menulis dengan cepat pada berkas yang dibuat dengan fixed-length logical order tanpa adanya urutan. Metode ini sangat berguna untuk mengakses informasi dalam jumlah besar. Biasanya database memerlukan hal seperti ini. Operasi berkas pada metode ini harus dimodifikasi untuk menambahkan nomor blok sebagai parameter. Pengguna menyediakan nomor blok ke sistem operasi biasanya sebagai nomor blok relatif, yaitu indeks relatif terhadap awal berkas. Penggunaan nomor blok relatif bagi sistem operasi adalah untuk memutuskan lokasi berkas diletakkan dan membantu mencegah pengguna dari pengaksesan suatu bagian sistem berkas yang bukan bagian pengguna tersebut.
28.
29.
30.
31.
32.
33.