JAWABAN UAS SISTEM OPERASI !!!!!
SOAL :
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 turnaround untuk penjadwalan CPU dengan menggunakan algoritma
a) Round Robin (quantum time -2)
b) Priority
c) Shortest job first Diketahui proses berikut:
| ||||||||||||||
Tentukan rata-rata waktu tunggu dan rata-rata waktu turnaround dengan algoritma penjadwalan :
a) FCFS
b) SJF non preemptive
c) SJF preemptive / SRTF
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 dan FCFS
c) RR dan SJF
5. Apa yang dimaksud dengan race condition?
6. Apakah yang dimaksud dengan critical section ? Untuk menyelesaikan masalah critical section , ada tiga hal yang harus dipenuhi, sebutkan dan jelaskan !
7. Bagaimana algoritma Bakery untuk sinkronisasi banyak proses (n proses) ?
8. Apa yang dimaksud semaphore dan sebutkan operasi pada semaphore
9. Bagaimana struktur semaphore permasalahan :
a) bounded buffer problem.
b) reader and writer problem.
c) dining philosopher problem.
10. Apa yang dimaksud dengan sumber daya ? Berikan contohnya.
11. Apa yang dimaksud deadlock ?
12. Sebutkan 4 kondisi yang menyebabkan deadlock.
13. Sebutkan cara mencegah deadlock dari 4 kondisi tersebut pada soal 12.
14. Diketahui snapshot dari suatu sistem :
Allocation | Max | Available | |
ABCD | ABCD | ABCD | |
PO PI | 00 12 1000 | 00 12 17 5 0 | 15 2 0 |
P3 | 1632 | 1652 | |
P4 | 00 14 | 065 6 |
Jawablah pertanyaan berikut:
a) Bagaimana isi matrik Need ?
b) Apakah sistem dalam state selamat ?
c) Jika proses PI meminta (0,4,2,0) dapatkah permintaan dipenuhi segera ?
15. Terdapat partisi memori lOOK, 500K, 200K, 300K dan 600K, bagaimana algoritma
First-fit, Best-fit dan Worst-fit menempatkan proses 212K, 417K, 112K dan 426K (berurutan) ? Algoritma mana yang menggunakan memori secara efisien ?
16. Apa yang dimaksud dengan fragmentasi eksternal dan fragmentasi internal ?
17. Diketahui ruang alamat logika dengan 8 page masing-masing 1024 word dipetakan
ke memori fisik 32 frame.
18. Berapa bit alamat logika ?
19. Berapa bit alamat fisik ?
20. Diketahui sistem paging dengan page table disimpan di memori
21. Jika acuan ke memori membutuhkan 200 nanosecond, berapa lama waktu
melakukan paging ?
22. 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).
23. 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 memori adalah 100 nanosecond. Diasumsikan page yang di-replace akan dimodifikasi adalah 70 persen dari waktu. Berapa rata-rata page fault yang diterima untuk effective access time tidak lebih dari 200 nanosecond ?
24. 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 setiap page unik pertama akan bernilai masing-masing satu fault
a. LRU
b. FIFO
c. Optimal
25. Diketahui array 2 dimensi A sebagai berikut:
var A : array[1..100] of array{1..100] of integer
Dimana A[l][l] 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 instruksi dimulai dari page 0. Untuk 3 frame page, berapa banyak page fault 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 (i=1;i<=100; i++)
For (j = 1; j <= 100; j++) A[i][j] := 0;
A[i][j] = 0;
26. 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 ke memori 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 dari sisanya (20%), 10% nya (atau 2 persen dari total) menyebabkan page fault. Berapakah effective access time-nya?
27. Apakah keuntungan dan kerugian menyimpan nama pembuat program pada atribut
file (seperti pada SO Machintosh)
28. Terdapat beberapa metode akses misalnya sequential access dan direct access.
Jelaskan !
29. Sebutkan dan jelaskan Tree-structured directory dan acyclic-graph directory
30. Diketahui sebuah system mendukung 5000 user. Misalnya akan mengijinkan 4990 userdapat mengakses sebuah file. Bagaimana spesifikasi proteksi pada UNIX ?
31. Sistem file biasanya diimplementasikan dalam struktur layer atau modular. Jelaskan struktur layer pada system file.
32. Ada beberapa cara file dialokasikan pada ruangdisk, yaitu contiguous, linked atau berindeks. Jelaskan ketiga cara alokasi file diatas dan berikan contoh.
33. Sebutkan dan jelaskan cara untuk memperbaiki sistem dari kegagatan sehingga tidak kehilangan data atau data inconsistency.
34. Apakah permasalahan yang timbul bila sebuah system memperbolehkan system file di-mount secara simultan lebih dari satu lokasi ?
JAWABAN :
JAWABAN UAS SISTEM OPERASI !!!!!
- -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. - a) 3.6 menitb)c)
- 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 = 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 - 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. - 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.
- 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. - 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); - 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. - a.Bounded-Buffer (Producer-Consumer) ProblemProdusen 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 ProblemTerdapat 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 ProblemPermasalahan 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); - 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 - 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.
- -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. - --> 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 - a). Isi matrik Need didefinisikan dengan Max – Allocation.
Need
A B C
P0 7 4 3
P1 1 2 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 A dan dua
anggota tipe sumber daya C sehingga Request1 = (1, 0, 2). Untuk menentukan apakah permintaan dapat segera dipenuhi, pertama harus diperiksa apakah Request1 ≤ Available ((1, 0, 2) ≤ (3, 3, 2)) ternyata benar. Maka akan diperoleh state baru berikut :
Allocation Need Available
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
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 doatas, 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). State Selamat (Safe State)
Ketika suatu proses meminta sumber daya yang tersedia, sistem harus
menentukan apakah alokasi sumber daya pada proses mengakibatkan sistem dalam state selamat. Sistem dikatakan dalam state selamat jika sistem dapat mengalokasikan sumber daya untuk setiap proses secara berurutan dan menghindari deadlock. Urutan proses selamat jika untuk setiap Pi, sumber daya yang masih diminta Pi masih memenuhi sumber daya yang tersedia dan sumber daya yang dibawa oleh setiap Pj, dimana j < i. Jika sumber daya yang diperlukan Pi tidak dapat segera disediakan, maka Pi dapat menunggu sampai semua Pj selesai. Ketika Pj selesai, Pi dapan memperoleh sumber daya yang diperlukan, mengeksekusi, mengembalikan sumber daya yang dialokasikan dan terminasi. Ketika Pi selesai, Pi+1 dapat memperoleh sumber daya yang diperlukan dan seterusnya. Jika sistem dalam state selamat maka tidak terjadi deadlock, sedangkan jika sistem dalam state tidak selamat (unsafe state) maka kemungkinan terjadi deadlock Metode menghindari deadlock menjamin bahwa sistem tidak pernah memasuki state tidak selamat.
Untuk menggambarkan sistem dapat berpindah dari state selamat ke state tidak selamat dapat dilihat ilustrasi berikut ini. Misalnya sistem mempunyai 12 magnetic tape drive dan 3 proses P0, P1 dan P2. Proses P0 membutuhkan 10 tape drive, proses P1 membutuhkan 4 dan proses P2 membutuhkan 9 tape drive. Misalnya pada waktu t0,proses P0 membawa 5 tape drive, P1 membawa 2 dan P2 membawa 2 tape drive sehingga terdapat 3 tape drive yang tidak digunakan.Kebutuhan Maksimum Kebutuhan Sekarang
P0 10 5
P1 4 2
P2 9 2
Pada waktu t0, sistem dalam state selamat. Urutan < P1, P0, P2> memenuhi kondisi selamat karena P1 dapat segera dialokasikan semua tape drive dan kemudian mengembalikan semua tape drive sehingga sistem tersedia 5 tape drive. Kemudian P0 dapat memperoleh semua tape drive dan mengembalikan semua sehingga sistem tersedia 10 tape drive dan terakhir proses P2 dapat memperoleh semua tape drive danmengembalikan semua tape drive sehingga system tersedia 12 tape drive.kemudian mengembalikan semua tape drive sehingga hanya tersedia 4 tape drive.
Karena proses P0 sudah dialokasikan 5 tape drive tetapi membutuhkan maksimum 10 tape drive sehingga meminta 5 tape drive lagi. Karena tidak tersedia, proses P0 harus menunggu demikian juga P2 sehingga system menjadi deadlock
c). - 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 dibanidngkan worst-fit dalam hal menurunkan waktu dan utilitas penyimpan. Tetapi first-fit dan best-fit lebih baik dalam hal utilitas penyimpanan tetapi first-fit lebih cepat. .
- 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.
- 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]
- 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.
- 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.
- 40 ms
- Waktu akses memory = 200 nanosecondRata-rata waktu page-fault service time = 8 milliseconds1 ms=106 nsEAT =((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
- equential 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.
- >Direktori dengan Struktur Tree (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.
>Direktori dengan Struktur Graf Asiklik (Acyclic-graph Structured Directory)
Direktori dengan struktur tree melarang pembagian berkas/direktori. Oleh karena itu, struktur graf asiklik memperbolehkan direktori untuk berbagi berkas atau subdirektori. Jika ada berkas yang ingin diakses oleh dua pengguna atau lebih, maka struktur ini menyediakan fasilitas sharing.
- 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 direktori, jumlah link ke file, nama pemilik, nama group, ukuran file dalam byte, tanggal membuat, nama file:-rw-rw-r-- 1 pbg staff 31200 Sep 3 08:30 intro.psdrwx------ 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 programdrwx—-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/
- Pada level terendah, I/O control berisi device driver dan interrupt handler untuk mengirim informasi antara memori dan sistem disk. Basic file system berisi perintah bagi device driver untuk membaca dan menulis blok fisik pada disk. File organization module berisi modul untuk mengetahui blok logika pada blok fisik. Logical file system menggunakan struktur direktori untuk memberikan ke file organization module informasi tentang kebutuhan terakhir.
Informasi mengenai sebuah file disimpan pada struktur penyimpan yang disebut file control block seperti Gambar 10-2.Gambar 10-3 mengilustrasikan pentingnya struktur sistem file disediakan oleh sistem operasi. Pada saat membuka file (dengan menjalankan perintah open) blok-blok dari struktur direktori disimpan pada struktur direktori di memori dan mengubah file control block. Pada saat membaca file (dengan menjalankan perintah read), indeks yang dibaca di cari lokasi blok pada disk melalui tabel open file yang berada di memori.Virtual File Systems (VFS) merupakan implementasi sistem file yang berorientasi obyek. VFS memungkinkan antarmuka system call (API) yang sama digunakan untuk sistem file yang berbeda. API adalah lebih sebagai antarmuka VFS dan bukan untuk tipe sistem file tertentu. 32. Alokasi Berurutan (Contiguous Allocation) Pada alokasi berurutan, setiap file menempati sekumpulan blok yang berurutan pada disk (Gambar 10-5). Model ini sangat sederhana karena hanya membutuhkan lokasi awal (block #) 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 Extent-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. Alokasi Berhubungan (Linked Allocation) Pada alokasi berhubungan, setiap file adalah sebuah linked list dari blok-blok terpisah pada disk (Gambar 10-6). 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 berhubungan adalah file-allocation table (FAT) yang digunakan MS-DOS dan OS/2. Bentuk file allocation tabel dapat dilihat pada Gambar 10-7. Alokasi Berindeks (Indexed Allocation) Pada alokasi berindeks, memerlukan tabel indeks yang membawa pointer ke blok-blok file yang lain. Akses dilakukan secara random. Merupakan akses dinamis tanpa fragmentasi eksternal, tetapi mempunyai blok indeks yang berlebih. Pemetaan dari logika ke fisik dalam file ukuran maksimum 256K word dan ukuran blok 512 word hanya memerlukan 1 blok untuk tabel indeks.Apabila pemetaan dari logika ke fisik dalam sebuah file dari ukuran tak hingga (ukuran blok adalah 512 word) maka digunakan skema menghubungkan blok link dari tabel indeks (ukuran tak terbatas). Untuk ukuran file maksimum 5123 digunakan skema two-level indeks (Gambar 10-8). Pada skema two-level indeks terdapat tabel indeks luar dan dalam. Indeks dipetakan ke tabel indeks luar kemudian dipetakan ke tabel indeks dalam setelah itu mengakses blok file yang dimaksud. 33. 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 penyimpan lain (floppy disk, magnetic tape). Perbaikan akan Recover menghilangkan file atau disk dengan restoring data dari backup.
34. 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 point) yang berisi nama device yang bersangkutan dan lokasi dari device tersebut