Anda di halaman 1dari 41

1.

VIRTUAL MEMORI
Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori
yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses
dapat mulaidieksekusi. Dengan kata lain, semua bagian proses harus memiliki
alokasi sendiri padamemori fisiknya.Pada nyatanya tidak semua bagian dari
program tersebut akan diproses, misalnya:
1. Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi
jika kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi,
maka pilihan tersebut tak
akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah: pesanpesan error
yang hanya akan muncul bila terjadi kesalahan dalam eksekusi program.
2. Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari
100x
pemakaian.
3. Terdapat pealokasian memori lebih besar dari yang sebenarnya
dibutuhkan. Contoh
pada: array, list, dan tabel.
Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik.
Padamemori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan
tetapi,bagaimana jika memori yang disediakan terbatas?
Salah satu cara untuk mengatasinya adalah dengan overlay dan dynamic
loading .Namun hal ini menimbulkan masalah baru karena implementasinya yang
rumit danpenulisan program yang akan memakan tempat di memori. Tujuan
semula untukmenghemat memori bisa jadi malah tidak tercapai apabila program
untuk overlay dandynamic loading . malah lebih besar daripada program yang
sebenarnya ingindieksekusi.Maka sebagai solusi untuk masalah-masalah ini
digunakanlah konsep memori virtual.

1.0.1 Pengertian

Memori virtual merupakan suatu teknik yang memisahkan antara memori


logis danmemori fisiknya. Teknik ini mengizinkan program untuk dieksekusi
tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Berbeda
dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat
menampung program dalam skala besar, melebihi daya tampung dari memori
utama yang tersedia. Prinsip dari memori virtual yang patut diingat adalah bahwa:
"Kecepatanmaksimum eksekusi proses di memori virtual dapat sama, tetapi tidak
pernah melampauikecepatan eksekusi proses yang sama di sistem tanpa
menggunakan memori virtual."Konsep memori virtual pertama kali dikemukakan
Fotheringham pada tahun 1961pada sistem komputer Atlas di Universitas
Manchester, Inggris (Hariyanto, Bambang :2001).
1.0.2 Keuntungan
Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang
diletakkan di memori. Hal ini berakibat pada:
1.

Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah).


Misal, untuk program butuh membaca dari disk dan memasukkan dalam

memory setiap kali diakses.


2. Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa).
Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam
memori.

Pesan-pesan

error

hanya

dimasukkan

jika

terjadi

error.Meningkatnya respon, sebagai konsekuensi dari menurunnya beban


I/O dan memori.
3. Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang
masih tersedia luas memungkinkan komputer untuk menerima lebih
banyak permintaan dari user.

1.1 Konsep Dasar Memori Virtual


Gagasan dari memori virtual adalah ukuran gabungan program, data dan

stackmelampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan


bagian-bagianproses yang sedang digunakan di memori utama (main memory) dan
sisanya ditaruh didisk. Begitu bagian di disk diperlukan, maka bagian di memori
yang tidak diperlukan akandisingkirkan (swap-out) dan diganti (swap-in) oleh
bagian disk yang diperlukan itu.Memori virtual diimplementasikan dalam sistem
multiprogramming. Misalnya: 10 programdengan ukuran 2 Mb dapat berjalan di
memori berkapasitas 4 Mb. Tiap programdialokasikan 256 KByte dan bagianbagian proses di-swap masuk dan keluar memoribegitu diperlukan. Dengan
demikian, sistem multiprogramming menjadi lebih efisien.Memori virtual dapat
dilakukan melalui dua cara:
1. Permintaan pemberian halaman (demand paging).
2. Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma
dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan.
1.2 Permintaan Pemberian Halaman (Demand Paging)
Merupakan implementasi yang paling umum dari memori virtual.Prinsip
permintaan pemberian halaman (demand paging) hampir sama dengan sistem
penomoran (paging) dengan menggunakan swapping. Perbedaannya adalah page
pada permintaan pemberian halaman tidak akan pernah di-swap ke memori
sampaiia benar-benar diperlukan. Untuk itu diperlukan adanya pengecekan
dengan bantuan perangkat keras mengenai lokasi dari page saat ia dibutuhkan.
1.2.1 Permasalahan pada Page Fault
Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan
pengecekan pada page yang dibutuhkan, yaitu:
1. Page ada dan sudah berada di memori.
2. Page ada tetapi belum ditaruh di memori (harus menunggu sampai
dimasukkan).
3. Page tidak ada, baik di memori mau pun di disk (invalid reference abort).
Saat terjadi kasus kedua dan ketiga, maka proses dinyatakan mengalami page
fault.

1.2.2 Skema Bit Valid - Tidak Valid


Dengan meminjam konsep yang sudah pernah dijelaskan dalam Bab 9,
maka dapatditentukan page mana yang ada di dalam memori dan mana yang tidak
ada di dalammemori.Konsep itu adalah skema bit valid - tidak valid, di mana di
sini pengertian "valid"berarti bahwa page legal dan berada dalam memori (kasus
1), sedangkan "tidak valid"berarti page tidak ada (kasus 3) atau page ada tapi
tidak ditemui di memori (kasus 2).
Pengesetan bit:
Bit 1 page berada di memori
Bit 0 page tidak berada di memori.(Dengan inisialisasi: semua bitdi-set 0).
Apabila ternyata hasil dari translasi, bit page = 0, berarti page fault terjadi.
1.2.3 Penanganan Page Fault
Prosedur penanganan page fault sebagaimana tertulis di buku Operating
SystemConcept 5th Ed halaman 294 adalah sebagai berikut:
1. Cek tabel internal yang dilengkapi dengan PCB untuk menentukan valid atau
tidaknya bit.
2. Apabila tidak valid, program akan di-terminate (interupsi oleh illegal address
trap).
3. Memilih frame kosong (free-frame), misal dari free-frame list. Jika tidak
ditemui ada frameyang kosong, maka dilakukan swap-out dari memori. Frame
mana yang harus di-swap-out akan ditentukan oleh algoritma (lihat sub bab Page
Replacement).
4. Menjadualkan operasi disk untuk membaca page yang diinginkan ke frame
yang baru dialokasikan.
5. Ketika pembacaan komplit, tabel internal akan dimodifikasi dan page di
identifikasi adadi memori.
6. Mengulang instruksi yang tadi telah sempat diinterupsi. Jika tadi page fault
terjadi saatinstruksi di-fetch, maka akan dilakukan fecthing lagi. Jika terjadi saat
operan sedangdi-fetch, maka harus dilakukan fetch ulang, decode, dan fetch
operan lagi.

1.3 Unjuk Kerja Demand Paging


Sebagaimana dilihat di atas, bahwa ternyata penanganan page fault
menimbulkanmasalah-masalah baru pada proses restart instruction yang
berhubungan denganarsitektur komputer.Masalah yang terjadi, antara lain
mencakup:
1. Bagaimana mengulang instruksi yang memiliki beberapa lokasi yang berbeda?
2. Bagaimana pengalamatan dengan menggunakan special-addresing mode,
termasukautoincrement dan autodecrement mode?
3. Bagaimana jika instruksi yang dieksekusi panjang (contoh: block move)?
Masalah pertama dapat diatasi dengan dua cara yang berbeda.
1. komputasi microcode dan berusaha untuk mengakses kedua ujung dari
blok, agartidak ada modifikasipage yang sempat terjadi.
2. memanfaatkan register sementara (temporary register ) untuk menyimpan
nilai yang sempat tertimpa/termodifikasi untuk nilai lain.
Masalah kedua diatasi dengan menciptakan suatu special-status register
baru yangberfungsi menyimpan nomor register dan banyak perubahan yang
terjadi sepanjangeksekusi instruksi. Sedangkan masalah ketiga diatasi dengan
mengeset bit FPD (first phase done) sehingga restart instruction tidak akan
dimulai dari awal program, melainkan dari tempat program terakhir dieksekusi.
1.3.1 Persyaratan Perangkat Keras
Pemberian nomor halaman melibatkan dukungan perangkat keras,
sehingga adapersyaratan perangkat keras yang harus dipenuhi. Perangkatperangkat keras tersebutsama dengan yang digunakan untuk paging dan
swapping, yaitu:
Secondary memory, tempat menyimpan page yang tidak ada di memori utama, Pagetable, menandai bit valid-tidak valid.Lebih lanjut, sebagai konsekuensi dari
persyaratan ini, akan diperlukan pula perangkat lunak yang dapat mendukung
terciptanya pemberian nomor halaman.
1.4 Pemindahan Halaman (Page Replacement)
Pada dasarnya, kesalahan halaman (page fault) sudah tidak lagi menjadi

masalahyang terlalu dianggap serius. Hal ini disebabkan karena masing-masing


halaman pastiakan mengalami paling tidak satu kali kesalahan dalam pemberian
halaman, yakni ketikahalaman ini ditunjuk untuk pertama kalinya.Representasi
seperti ini sebenarnya tidaklah terlalu akurat. Berdasarkanpertimbangan tersebut,
sebenarnya proses-proses yang memiliki 10 halaman hanyaakan menggunakan
setengah dari jumlah seluruh halaman yang dimilikinya. Kemudiandemand
paging akan menyimpan I/O yang dibutuhkan untuk mengisi 5 halaman
yangbelum

pernah

digunakan.

Kita

juga

dapat

meningkatkan

derajat

multiprogrammingdengan menjalankan banyak proses sebanyak 2 kali.Jika kita


meningkatkan derajat multiprogramming, itu sama artinya denganmelakukan
over-allocating terhadap memori. Jika kita menjalankan 6 proses, denganmasingmasing mendapatkan 10 halaman, walau pun sebenarnya yang digunakan hanya5
halaman, kita akan memiliki utilisasi CPU dan throughput yang lebih tinggi
dengan

10frame

yang

masih

kosong.Lebih

jauh

lagi,

kita

harus

mempertimbangkan bahwa sistem memori tidak hanyadigunakan untuk


menangani pengalamatan suatu program. Penyangga (buffer) untuk I/Ojuga
menggunakan

sejumlah

pemakaianalgoritma

memori.

dalam

Penggunaan

penempatan

di

ini

dapat

meningkatkan

memori.Beberapa

sistem

mengalokasikan secara pasti beberapa persen dari memori yangdimilikinya untuk


penyangga I/O, dimana keduanya, baik proses pengguna mau punsubsistem dari
I/O saling berlomba untuk memanfaatkan seluruh sistem memori.
1.5 Algoritma Page Replacement
Pemindahan halaman mengambil pendekatan seperti berikut. Jika tidak
ada frameyang kosong, kita mencari frame yang tidak sedang digunakan dan
mengosongkannya.Kita dapat mengosongkan sebuah frame dengan menuliskan
isinya ke ruang pertukaran(swap space), dan merubah tabel halaman (juga tabeltabel lainnya) untukmengindikasikan bahwa halaman tesebut tidak akan lama
berada di memori.Sekarang kita dapat menggunakan frame yang kosong sebagai
penyimpan halaman dariproses yang salah. Rutinitas pemindahan halaman:
1. Cari lokasi dari halaman yang diinginkan pada disk

2. Cari frame kosong:


a. Jika ada frame kosong, gunakan.
b. Jika tidak ada frame kosong, gunakan algoritma pemindahan halaman
untukmenyeleksi frame yang akan digunakan.
c. Tulis halaman yang telah dipilih ke disk, ubah tabel halaman dan tabel
frame.
3. Baca halaman yang diinginkan kedalam frame kosong yang baru, ubah tabel
halamandan tabel frame.
4. Ulang dari awal proses pengguna.
Jika tidak ada frame yang kosong, pentransferan dua halaman (satu masuk,
satukeluar) akan dilakukan. Situasi ini secara efektif akan menggandakan waktu
pelayanankesalahan halaman dan meningkatkan waktu akses efektif. Kita dapat
mengurangipemborosan ini dengan menggunakan bit tambahan. Masingmasing
halaman atau frame mungkin memiliki bit tambahan yang diasosiasikan didalam
perangkat keras.Pemindahan halaman merupakan dasar dari demand paging. Yang
menjembatanipemisahan antara memori lojik dan memori fisik. Dengan
mekanisme seperti ini, memorivirtual yang sangat besar dapat disediakan untuk
programmer dalam bentuk memori fisikyang lebih kecil. Dengan nondemand
paging, alamat dari user dipetakan kedalam alamatfisik, jadi 2 set alamat dapat
berbeda. Seluruh halaman dari proses masih harus beradadi memori fisik. Dengan
demand paging, ukuran dari ruang alamat logika sudah tidakdibatasi oleh memori
fisik.Kita harus menyelesaikan 2 masalah utama untuk mengimplementasikan
demandpaging. Kita harus mengembangkan algoritma pengalokasian frame dan
algoritmapemindahan halaman. Jika kita memiliki banyak proses di memori, kita
harus memutuskan berapa banyak frame yang akan dialokasikan ke masingmasing proses.Lebih jauh lagi, saat pemindahan halaman diinginkan, kita harus
memilih frame yangakan dipindahkan. Membuat suatu algoritma yang tepat untuk
menyelesaikan masalah ini adalah hal yang sangat penting. Ada beberapa
algoritma pemindahan halaman yang berbeda. Kemungkinan setiap Sistem
Operasi memiliki skemapemindahan yang unik. Algoritma pemindahan yang
baikadalah yang memiliki tingkat kesalahan halaman terendah.Kita mengevaluasi

algoritma dengan menjalankannya dalam string khusus di memoriacuan dan


menghitung jumlah kesalahan halaman. String dari memori acuan disebutstring
acuan (reference string).Sebagai contoh, jika kita memeriksa proses khusus, kita
mungkin akan mencataturutan alamat seperti dibawah ini:
0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101,
0610,0102, 0103, 0104, 0101, 0609, 0102, 0105,
dimana pada 100 bytes setiap halaman, diturunkan menjadi string acuan seperti
berikut:
1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1
Perlu diperhatikan bahwa selama jumlah frame meningkat, jumlah kesalahan
halamanmenurun.Penambahan memori fisik akan meningkatkan jumlah frame.
1.5.1 Pemindahan Halaman Secara FIFO
Algoritma ini adalah algoritma paling sederhana dalam hal pemindahan
halaman.Algoritma pemindahan FIFO (First In First Out) mengasosiasikan waktu
pada saathalaman dibawa kedalam memori dengan masing-masing halaman. Pada
saat halamanharus dipindahkan, halaman yang paling tua yang dipilih. Sebagai
contoh:

Gambar 4.11. String Acuan


Dari contoh diatas, terdapat 15 kesalahan halaman. Algoritma FIFO
mudah untukdipahami dan diimplementasikan. Namun performance-nya tidak
selalu bagus. Salahsatu kekurangan dari algoritma FIFO adalah kemungkinan
terjadinya anomali Beladi,dimana dalam beberapa kasus, tingkat kesalahan akan
meningkat seiring denga peningkatan jumlah frame yang dialokasikan.
1.5.2 Pemindahan Halaman Secara Optimal
Salah satu akibat dari upaya mencegah terjadinya anomali Beladi adalah
algoritmapemindahan halaman secara optimal. Algoritma ini memiliki tingkat
8

kesalahan halamanterendah dibandingkan dengan algoritma-algoritma lainnya.


Algoritma ini tidak akanmengalami anomaly Belady. Konsep utama dari
algoritma ini adalah mengganti halamanyang tidak akan digunakan untuk jangka
waktu yang paling lama. Algoritma ini menjaminkemungkinan tingkat kesalahan
terendah untuk jumlah frame yang tetap.

Dari contoh diatas, terdapat 9 kesalahan halaman. Dengan hanya 9


kesalahan halaman, algoritma optimal jauh lebih baik daripada algoritma FIFO.
Perlu disayangkan, algoritma optimal susah untuk diimplementasikan kedalam
program, karena algoritma ini menuntut pengetahuan tentang string acuan yang
akan muncul.
1.5.3 Pemindahan Halaman Secara LRU
Jika algoritma optimal sulit untuk dilakukan, mungkin kita dapat
melakukan pendekatan terhadap algoritma tersebut. Jika kita menggunakan waktu
yang baru berlalu sebagai pendekatan terhadap waktu yang akan datang, kita akan
memindahkan halaman yang sudah lama tidak digunakan dalam jangka waktu
yang terlama. Pendekatan ini disebut algoritma LRU (Least Recently Used).
Algoritma LRU mengasosiasikan dengan masing-masing halaman waktu
dari halaman yang terakhir digunakan. Ketika halaman harus dipindahkan, LRU
memilih halaman yang paling lama tidak digunakan pada waktu yang lalu. Inilah
algoritma LRU, melihat waktu yang telah lalu, bukan waktu yang akan datang.

Dari contoh diatas, terdapat 12 kesalahan halaman. Meski pun algoritma ini
menghasilkan 12 kesalahan halaman, algoritma ini masih lebih baik daripada
algoritma

FIFO,

yang

menghasilkan

15

kesalahan

halaman.

Untuk

mengimplementasikan algoritma LRU, terdapat 2 implementasi yang dapat


digunakan, yaitu dengan counter dan stack.
Selain algoritma optimal, algoritma LRU juga dapat terhindar dari anomali
Beladi. Salah satu kelas dari algoritma pemindahan halaman adalah algoritma
stack, yang juga tidak akan pernah mengalami anomali Beladi. Algoritma stack ini
menyimpan nomor-nomor halaman pada stack. Kapan pun suatu halaman
ditunjuk, halaman ini dikeluarkan dari stack dan diletakkan di blok paling atas
dari stack. Dengan cara seperti ini, blok paling atas dari stack selalu berisi
halaman yang baru digunakan, sedangkan blok terbawah dari stack selalu berisi
halaman yang sudah lama tidak digunakan. Karena suatu halaman dalam stack
dapat dikeluarkan meski pun berada ditengah-tengah stack, maka implementasi
terbaik untuk algoritma ini adalah dengan daftar mata rantai ganda (doubly linked
list), dengan kepala dan ekor sebagai penunjuk. Pendekatan ini sangat tepat untuk
perangkat lunak atau implementasi kode mikro dari algoritma LRU. Sebagai
contoh:

1.5.4 Pemindahan Halaman Secara Perkiraan LRU


Hanya sedikit sistem komputer yang menyediakan perangkat lunak yang
memberikan cukup dukungan terhadap algoritma pemindahan halaman secara
LRU. Banyak sistem yang tidak menyediakan perangkat lunak yang memberikan
dukungan terhadap algoritma LRU, sehingga terpaksa menggunakan algoritma
lain, seperti FIFO.

10

Banyak sistem menyediakan bantuan untuk menangani masalah ini,


misalnya dengan bit acuan. Bit acuan untuk halaman diset oleh perangkat lunak
kapan pun halaman tersebut ditunjuk. Bit acuan diasosiasikan dengan masingmasing isi dari tabel halaman.
Awalnya, seluruh bit dikosongkan oleh sistem operasi. Selama proses
pengguna dijalankan, bit yang diasosiasikan ke masing-masing halaman acuan
diset menjadi 1 oleh perangkat keras. Setelah beberapa waktu, kita dapat
menentukan halaman mana yang sudah digunakan dan halaman mana yang belum
digunakan dengan menguji bit-bit acuan.
Informasi tersebut memberikan informasi penting untuk banyak algoritma
pemindahan halaman yang memperkirakan halaman mana yang sudah lama tidak
digunakan.
1.6 Pengalokasian Frame
Terdapat masalah dalam alokasi frame dalam penggunaan memori
virtual, masalahnya yaitu bagaimana kita membagi memori yang bebas kepada
berbagai proses yang sedang dikerjakan? Jika ada sejumlah frame bebas dan ada
dua proses, berapakah frame yang didapatkan tiap proses?
Kasus paling mudah dari memori virtual adalah sistem satu pemakai.
Misalkan sebuah sistem mempunyai memori 128K dengan ukuran halaman 1K,
sehingga ada 128 frame. Sistem operasinya menggunakan 35K sehingga ada 93
frame yang tersisa untuk proses tiap user. Untuk pure demand paging, ke-93 frame
tersebut akan ditaruh pada daftar frame bebas. Ketika sebuah proses user mulai
dijalankan, akan terjadi sederetanpage fault. Sebanyak 93 page fault pertama akan
mendapatkan frame dari daftar frame bebas. Saat frame bebas sudah habis, sebuah
algoritma pergantian halaman akan digunakan untuk memilih salah satu dari 93
halaman di memori yang diganti dengan yang ke 94, dan seterusnya. Ketika
proses selesai atau diterminasi, sembilan puluh tiga frame tersebut akan disimpan

11

lagi pada daftar frame bebas. Terdapat macam-macam variasi untuk strategi
sederhana ini, kita bisa meminta sistem operasi untuk mengalokasikan seluruh
buffer dan ruang tabel-nya dari daftar frame bebas. Saat ruang ini tidak digunakan
oleh sistem operasi, ruang ini bisa digunakan untuk mendukung paging dari user.
Kita juga dapat menyimpan tiga frame bebas yang dari daftar frame bebas,
sehingga ketika terjadi page fault, ada frame bebas yang dapat digunakan untuk
paging. Saat pertukaran halaman terjadi, penggantinya dapat dipilih, kemudian
ditulis ke disk, sementara proses user tetap berjalan.
Variasi lain juga ada, tetapi ide dasarnya tetap yaitu proses pengguna diberikan
frame bebas yang mana saja. Masalah lain muncul ketika demand paging
dikombinasikan

dengan

multiprogramming.

Hal

ini

terjadi

karena

multiprogramming menaruh dua (atau lebih) proses di memori pada waktu yang
bersamaan.
1.6.1 Jumlah Frame Minimum
Tentu saja ada berbagai batasan pada strategi kita untuk alokasi frame.
Kita tidak dapat mengalokasikan lebih dari jumlah total frame yang tersedia
(kecuali ada page sharing). Ada juga jumlah minimal frame yang dapat di
alokasikan. Jelas sekali, seiring dengan bertambahnya jumlah frame yang
dialokasikan ke setiap proses berkurang, tingkat page fault bertambah dan
mengurangi kecepatan eksekusi proses. Selain hal tersebut di atas, ada jumlah
minimum frame yang harus dialokasikan. Jumlah minimum ini ditentukan oleh
arsitektur set instruksi. Ingat bahwa ketika terjadi page fault, sebelum eksekusi
instruksi selesai, instruksi tersebut harus diulang. Sehingga kita harus punya
jumlah frame yang cukup untuk menampung semua halaman yang dirujuk oleh
sebuah instruksi tunggal. Jumlah minimum frame ditentukan oleh arsitektur
komputer. Sebagai contoh, instruksi move pada PDP-11 adalah lebih dari satu kata
untuk beberapa modus

pengalamatan, sehingga instruksi tersebut bisa

membutuhkan dua halaman. Sebagai tambahan, tiap operannya mungkin merujuk


tidak langsung, sehingga total ada enam frame. Kasus terburuk untuk IBM 370
adalah instruksi MVC. Karena instruksi tersebut adalah instruksi perpindahan dari
penyimpanan ke penyimpanan, instruksi ini butuh 6 bit dan dapat memakai dua

12

halaman. Satu blok karakter yang akan dipindahkan dan daerah tujuan
perpindahan juga dapat memakai dua halaman, sehingga situasi ini membutuhkan
enam frame. Kesimpulannya, jumlah minimum frame yang dibutuhkan per proses
tergantung dari arsitektur komputer tersebut, sementara jumlah maksimumnya
ditentukan oleh jumlah memori fisik yang tersedia. Di antara kedua jumlah
tersebut, kita punya pilihan yang besar untuk alokasi frame.
1.6.2 Algoritma Alokasi
Cara termudah untuk membagi m frame terhadap n proses adalah
untukmemberikan bagian yang sama, sebanyak m/n frame untuk tiap proses.
Sebagai contohada 93 frame tersisa dan 5 proses, maka tiap proses
akanmendapatkan 18 frame. Frameyang tersisa, sebanyak 3 buah dapat digunakan
sebagai frame bebas cadangan. Strategiini disebut equal allocation.Sebuah
alternatif yaitu pengertian bahwa berbagai proses akan membutuhkanjumlah
memori yang berbeda. Jika ada sebuah proses sebesar 10K dan sebuah prosesbasis
data 127K dan hanya kedua proses ini yang berjalan pada sistem, maka ketika
ada62 frame bebas, tidak masuk akal jika kita memberikan masing-masing proses
31 frame.Proses pertama hanya butuh 10 frame, 21 frame lain akan terbuang
percuma.
Untuk menyelesaikan masalah ini, kita menggunakan proportional
allocation. Kita mengalokasikan memori yang tersedia kepada setiap proses
tergantung pada ukurannya. Let the size of the virtual memory for process pi be si,
and define S = si. Lalu, jika jumlah total dari frame yang tersedia adalah m, kita
mengalokasikan proses ai ke proses pi, dimana ai mendekati ai = si / S x m Dalam
kedua strategi ini, tentu saja, alokasi untuk setiap proses bisa bervariasi
berdasarkan multiprogramming level-nya. Jika multiprogramming level-nya
meningkat, setiap proses akan kehilangan beberapa frame guna menyediakan
memori yang dibutuhkan untuk proses yang baru. Di sisi lain, jika
multiprogramming level-nya menurun, frame yang sudah dialokasikan pada
bagian process sekarang bisa disebar ke proses-proses yang masih tersisa.
Mengingat hal itu, dengan equal atau pun proportional allocation, proses yang
berprioritas tinggi diperlakukan sama dengan proses yang berprioritas rendah.

13

Berdasarkan definisi tersebut, bagaimanapun juga, kita ingin memberi


memori yang lebih pada proses yang berprioritas tinggi untuk mempercepat
eksekusi-nya, to the detriment of low-priority processes. Satu pendekatan adalah
menggunakan proportional allocation scheme dimana perbandingan frame-nya
tidak tergantung pada ukuran relatif dari proses, melainkan lebih pada prioritas
proses, atau tergantung kombinasi dari ukuran dan prioritas.
1.6.3 Alokasi Global dan Lokal
Faktor penting lain dalam cara-cara pengalokasian frame ke berbagai
proses adalah penggantian halaman. Dengan proses-proses yang bersaing
mendapatkan frame, kita dapat mengklasifikasikan algoritma penggantian
halaman kedalam dua kategori broad:
1.6.3.1 Penggantian Global dan Penggantian Lokal.
Penggantian Global memperbolehkan sebuah proses untuk menyeleksi
sebuah frame pengganti dari himpunan semua frame, meski pun frame tersebut
sedang dialokasikan untuk beberapa proses lain; satu proses dapat mengambil
sebuah frame dari proses yang lain. Penggantian Lokal mensyaratkan bahwa
setiap proses boleh menyeleksi hanya dari himpunan frame yang telah teralokasi
pada proses itu sendiri. Untuk contoh, pertimbangkan sebuah skema alokasi
dimana kita memperbolehkan proses berprioritas tinggi untuk meyeleksi frame
dari proses berprioritas rendah untuk penggantian. Sebuah proses dapat
menyeleksi sebuah pengganti dari frame-nya sendiri atau dari frame-frame proses
yang berprioritas lebih rendah. Pendekatan ini memperbolehkan sebuah proses
berprioritas tinggi untuk meningkatkan alokasi frame-nya pada expense proses
berprioritas rendah.Dengan strategi Penggantian Lokal, jumlah frame yang
teralokasi pada sebuahproses tidak berubah. Dengan Penggantian Global, ada
kemungkinan sebuah proseshanya menyeleksi frame-frame yang teralokasi pada
proses lain, sehingga meningkatkanjumlah frame yang teralokasi pada proses itu
sendiri (asumsi bahwa proses lain tidakmemilih frame proses tersebut untuk
penggantian).Masalah pada algoritma Penggantian Global adalah bahwa sebuah
proses tidak bisamengontrol page-fault-nya sendiri. Himpunan halaman dalam

14

memori untuk sebuahproses tergantung tidak hanya pada kelakuan paging dari
proses tersebut, tetapi jugapada kelakuan paging dari proses lain. Karena itu,
proses yang sama dapat tampilberbeda (memerlukan 0,5 detik untuk satu eksekusi
dan 10,3 detik untuk eksekusiberikutnya) due to totally external circumstances.
Dalam Penggantian Lokal, himpunanhalaman dalam memori untuk sebuah proses
hanya dipengaruhi kelakuan paging prosesitu sendiri.Penggantian Lokal dapat
menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses
lain, menggunakan halaman yang lebih sedikit pada memori. Jadi, secara umum
Penggantian Global menghasilkan sistem throughput yang lebih bagus, maka itu
artinya metode yang paling sering digunakan.
1.7 Thrasing
Jika suatu proses tidak memiliki frame yang cukup, walau pun kita
memiliki kemungkinan untuk mengurangi banyaknya frame yang dialokasikan
menjadi minimum, tetap ada halaman dalam jumlah besar yang memiliki kondisi
aktif menggunakannya. Maka hal ini akan mengakibatkan kesalahan halaman.
Pada kasus ini, kita harus mengganti beberapa halaman menjadi halaman yang
dibutuhkan walau pun halaman yang diganti pada waktu dekat akan dibutuhkan
lagi. Hal ini mengakibatkan kesalahan terus menerus. Aktivitas yang tinggi dari
paging disebut thrashing. Suatu proses dikatakan thrashing jika proses
menghabiskan waktu lebih banyak untuk paging daripada eksekusi (proses sibuk
untuk melakukan swap-in swap-out).
1.7.1 Penyebab Thrashing
Penyebab dari thrashing adalah utilisasi CPU yang rendah. Jika utilisasi
CPU terlalu rendah, kita menambahkan derajat dari multiprogramming dengan
menambahkan proses baru ke sistem. Sejalan dengan bertambahnya derajat dari
multiprogramming, utilisasi CPU juga bertambah dengan lebih lambat sampai
maksimumnya dicapai. Jika derajat dari multiprogramming ditambah terus
menerus, utilisasi CPU akan berkurang dengandrastis dan terjadi thrashing. Untuk
menambah utilisasi CPU dan menghentikan thrashing, kita harus mengurangi
derajat dari multiprogramming.

15

2. MANAJEMEN SISTEM FILE


File system atau manajemen file adalah metode dan struktur data yang
digunakan sistem operasi untuk mengatur dan mengorganisir file pada disk atau

16

partisi. File system juga dapat diartikan sebagai partisi atau disk yang digunakan
untuk menyimpan file-file dalam cara tertentu. Cara memberi suatu file system ke
dalam disk atau partisi dengan cara melakukan Format.

2.0 Manfaat Manajemen File


Manfaat manajemen file yaitu dapat mengurangi resiko kehilangan file
yang dikarenakan: terhapus secara tidak disengaja, tertimpa file baru, tersimpan
dimana saja, dan hal lain yang tidak kita inginkan.
Pada sebagian besar pemakai, system file merupakan bagian system
operasi yang paling tampak. System file menyediakan pengaksesan dan
penyimpanan file secara online terhadap data dan program. System file terisi dua
bagian terpisah, yaitu kumpulan file yang masing-masing file menyimpan data
dan / atau program serta struktur direktori yang mengorganisasikan dan
menyediakan informasi mengenai file di system.
2.1 Interface Sistem File
Antarmuka

(Interface)

merupakan

mekanisme

komunikasi

antara

pengguna (user) dengan sistem. Antarmuka (Interface) dapat menerima informasi


dari pengguna (user) dan memberikan informasi kepada pengguna (user) untuk
membantu mengarahkan alur penelusuran masalah sampai ditemukan suatu solusi.
Sedangkan

Sistem

File

adalah

adalah

metoda

untuk

memberi

nama

pada berkas dan meletakkannya pada media penyimpanan. Semua sistem operasi
mulai dari DOS, Windows, Macintosh dan turunan UNIX memiliki Sistem berkas
sendiri untuk meletakkan file dalam sebuah struktur hirarki. Contoh dari sistem
berkas

termasuk

di

dalamnya FAT, NTFS, HFS dan HFS+, ext2, ext3, ISO

9660, ODS-5, dan UDF.


2.1.1 Konsep File

File adalah unit penyimpan logika yang diabstraksi sistem operasi dari
perangkat penyimpan. File berisi informasi yang disimpan pada penyimpan
17

sekunder (seperti magnetic disk, magnetic tape dan optical disk). Informasi dalam
file didefinisikan oleh pembuatnya. Sebuah file mempunyai struktur tertentu
tergantung tipenya. Tipe file terdiri dari data baik data numeric, karakter maupun
binary sertaprogram misalnya source program, object program dan executable
program.

2.1.1.1 Atribut File


Sebuah file mempunyai atribut yg berbeda antara sistem operasi satu
denganlainnya, tetapi secara umum terdiri dari :

Nama, informasi disimpan dalam bentuk yang dapat dibaca manusia


Tipe, diperlukan sistem yang mendukung tipe yang berbeda.
Lokasi, pointer ke lokasi file pada perangkat.
Ukuran, ukuran file saat ini.
Proteksi, mengontrol siapa yang dapat membaca, menulis dan

mengeksekusi.
Waktu, tanggal dan identifikasi user, data untuk monitoring proteksi,
sekuriti dan penggunaan.

Informasi file disimpan dalam struktur direktori yang diatur oleh disk.
2.1.1.2 Operasi pada File
Sebagai tipe data abstrak, perlu didefinisikan operasi yang dapat dibentuk
olehfile. Terdapat enam operasi dasar yg disediakan sebagai sistem call yaitu :
Membuat file (create)
Menulis file (write)
Membaca file (read)
Reposisi dalam file (file seek)
Menghapus file (delete)
Memotong file (truncate)
Open(Fi) mencari struktur direktori untuk entry Fi dan memindahkan
isi entry kememori.
Close (Fi) memindahkan isi entry Fi di memori ke struktur direktori
pada disk.
Operasi tambahan yang biasanya dilakukan terhadap file adalah :
Menambah (append) informasi baru pada akhir file yang sudah ada
Mengubah nama (rename) file yang sudah ada
18

Membuat duplikasi (copy) file

Kebanyakan operasi file melibatkan pencarian direktori untuk masukan


yangberhubungan dengan file. Untuk menghindari pencarian tetap, beberapa
sistem akanmembuka file bila file tersebut aktif pertama kali. Sistem operasi
menyimpan table kecil yang berisi informasi tentang semua file yang terbuka
(open-file table). Bila filetidak digunakan lagi, dilakukan penutupan oleh proses
dan sistem operasi memindahkanfile dari open-file table.
Beberapa informasi yang berkaitan dg pembukaan file yaitu:
Pointer file.
Jumlah file yang dibuka.
Lokasi file pada disk.
2.1.1.3 Tipe File
Salah satu pertimbangan penting dalam merancang sistem file dan
keseluruhansistem operasi adalah apakah sistem operasi mengenali dan
mendukung sistem file. Bila sistem operasi mengenali tipe suatu file, maka dapat
dilakukan operasi terhadap filedengan cara yang rasional. Misalnya user yang
mencoba mencetak file executable dapatdicegah oleh sistem operasi karena file
adalah program binary.Teknik yg umum untuk implementasi tipe file adalah
memasukkan tipe filesebagai bagian dari nama file. Nama file dibagi menjadi dua
bagian yaitu nama danextension (seperti pada MS-DOS) seperti pada Gambar 9-2.
Setiap file mempunyaiatribut pembuat berisi nama dari program yang
membuatnya (seperti pada MSWindows/ Apple Macintosh). Atribut ini di-set oleh
sistem operasi saat menggunakansystem call create. Bila user membuka file
tersebut dengan melakukan double-clickingmouse pada icon dari file tsb, program
yang dibuat ditampilkan otomatis.

19

UNIX menggunakan magic number yang disimpan pada awal file untuk
mengindikasikan tipe file berupa program executable, batch file (shell script),
filepostscript dan lain-lain. Tidak semua file mempunyai magic number,
sehinggainformasi tipe tidak dapat digambarkan. UNIX tidak menyimpan nama
dari programpembuatnya. UNIX juga mengijinkan nama extension dari file
tersembunyi, sehingga user dapat menentukan tipe file sendiri dan tidak
tergantung pada sistem operasi.
2.1.1.3 Struktur File
Tipe file juga digunakan untuk untuk menunjukkan struktur internal dari
file.File tertentu harus konfirmasi ke struktur yang dibutuhkan yang dimengerti
oleh system operasi. Misalnya sistem operasi membutuhkan file executable yang
mempunyaistruktur khusus sehingga dapat menentukan dimana letak memory dan
lokasi dariinstruksi pertama.Beberapa sistem operasi menggunakan sekumpulan
sistem pendukung strukturfile dg sejumlah operasi khusus untuk manipulasi file
dengan struktur tersebut. Hal inimenjadi kelemahan pada sistem operasi yang
mendukung struktur file lebih dari satu.Jika sistem operasi menentukan 10

20

struktur file berbeda, maka perlu menyertakan kodeuntuk mendukung struktur file
tersebut. Setiap file perlu dapat didefinisikan sebagai satu dari tipe file yang
didukung oleh sistem operasi.Beberapa sistem operasi seperti UNIX dan MS-DOS
hanya mendukungsejumlah struktur file. UNIX menentukan setiap file merupakan
deret 8 bit byte dan bit tersebut tidak di terjemahkan oleh sistem operasi. Skema
ini mempunyai fleksibilitasimaksimum, tetapi sedikit dukungan. Setiap program
aplikasi harus mnyertakan kodesendiri untuk menterjemahkan file input ke dalam
struktur yang tepat. Setidaknyasemua SO harus mendukung sedikitnya satu
struktur file executable sehingga system dapat load dan menjalankan program.

2.1.1.4 Struktur File Internal


Secara internal, sistem disk mempunyai ukuran blok yang ditentukan
olehukuran sebuah sector. Semua disk I/O dibentuk dalam unit satu blok (physical
record) yang berukuran sama. Ukuran physical record tidak tepat dg panjang
logical record.Logical record mempunyai panjang yang bervariasi. Solusinya
adalah denganmengirim sejumlah logical record ke blok fisik. Ukuran logical
record, ukuran blokfisik dan teknik pengiriman menentukan berapa banyak logical
record yang berada padablok fisik. Pengiriman dapat dilakukan oleh program
aplikasi user atau sistem operasi.File merupakan deretan blok-blok. Semua fungsi
dasar I/O dioperasikan padablok-blok tersebut. Konversi dari logical record ke
blok fisik berhubungan dgperangkat lunak sederhana.

2.1.2

Metode Akses
File menyimpan informasi. Bila digunakan, informasi tersebut harus

diakses dan dibaca ke memory. Terdapat beberapa cara mengakses informasi pada
file yaituakses berurutan (sequential access), akses langsung (Direct access atau
relative access) dan metode akses lain.

2.2.2.1 Akses Berurutan (Sequential Access)

21

Akses berurutan merupakan metode akses paling sederhana. Informasi


pada filediproses secara berurutan, satu record diakses setelah record yang lain.
Metode akses ini berdasarkan model tape dari suatu file yang bekerja dengan
perangkat sequential-accessatau random-access.
Operasi pada akses berurutan terdiri dari :
read next
write next
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 materialpembacaan baru (new end of file). File dapat di-reset ke awal dan
sebuah programuntuk meloncat maju atau mundur ke n record.

Gambar 3 : Akses file berurutan


2.2.2.2 Akses Langsung (Direct Access)
File merupakan logical record dengan

panjang

tetap

yang

memungkinkanprogram membaca dan menulis record dengan cepat tanpa urutan


tertentu. Metodeakses langsung berdasarkan model disk dari suatu file,
memungkinkan acak kesembarang blok file, memungkinkan blok acak tersebut
dibaca atau ditulis.
Operasi pada akses langsung terdiri dari :
read n
write n

22

position to n
read next
write next
rewrite n
Operasi file dimodifikasi untuk memasukkan nomor blok sebagai parameter.
Nomor blok ditentukan user yang merupakan nomor blok relatif, misalnya
indeks relatif keawal dari file. Blok relatif pertama dari file adalah 0, meskipun
alamat disk absolutaktual dari blok misalnya 17403 untuk blok pertama. Metode
ini mengijinkan system operasi menentukan dimana file ditempatkan dan
mencegah user mengakses posisi darisistem file yang bukan bagian dari file
tersebut.

Tidak semua sistem operasi menggunakan baik akses berurutan atau akse
langsung untuk file. Beberapa sistem hanya menggunakan akses berurutan,
beberapasistem lain menggunakan akses langsung. Untuk mengubah akses
berurutan ke akseslangsung bukan sesuatu hal yang sulit seperti pada Gambar 4.

Gambar 4 : Mengubah akses berurutan menjadi akses langsung


2.2.2.3 Metode Akses Lain
Metode akses lain dapat dibangun berpedoman pada metode direct
access.Metode tambahan ini biasanya melibatkan konstruksi indeks untuk file.
Indeks, seperti indeks pada bagian akhir buku, berisi pointer ke blok-blok tertentu.
Untuk menentukan masukan dalam file, pertama dicari indeks, dan kemudian

23

menggunakan pointer untukmengakses file secara langsung dan menemukan


masukan yang tepat.
File indeks dapat disimpan di memori. Bila file besar, file indeks juga
menjaditerlalu besar untuk disimpan di memori. Salah satu pemecahan nya adalah
membuatindeks untuk file indeks. File indeks primer berisi pointer ke file indeks
sekunder, yangmenunjuk ke data item aktual. Bentuk pengaksesan secara
berindeks diilustrasikan pada Gambar 5.

Gambar 5 : Contoh indeks dan file relative

2.2.3

Struktur Direktori

Direktori adalah kumpulan titik yang berisi informasi tentang semua file .
Beberapa sistem menyimpan ratusan file pada disk ratusan gigabyte.
Untuk mengatur semua data menggunakan organisasi yg dilakukan dalam
dua bagian. Pertama, system file dipecah ke dalam partisi, yang disebut juga
minidisk (pada mesin IBM) atau volume (pada mesin PC dan Macintosh).
Setiap disk padasistem berisi sedikitnya satu partisi, merupakan struktur low-level
dimana file dandirektori berada. Terkadang, partisi digunakan untuk menentukan
beberapa daerahterpisah dalam satu disk, yang diperlakukan sebagai perangkat
penyimpan yangterpisah. Sistem lain menggunakan partisi yang lebih besar dari
sebuah disk untukmengelompokkan disk ke dalam satu struktur logika. Kedua,

24

setiap partisi berisi informasi mengenai file di dalamnya. Informasi inidisimpan


pada entry dalam device directory atau volume table of contents. Perangkat
direktori (atau direktori) menyimpan informasi seperi nama, lokasi, ukuran dan
tipeuntuks semua file dari partisi tersebut. Organisasi file yang umum dapat
dilihat padaGambar 6.

Gambar 7 : Organisasi sistem file


Informasi yang terdapat pada direktori adalah

Nama
Tipe
Alamat
Panjang saat ini
Panjang maksimum
Tanggal akses terakhir
Tanggal perubahan terakhir
ID pemilik
Informasi proteksi

Beberapa operasi yang dibentuk pada direktori adalah :


Mencari file (search)
Membuat file (create)
Menghapus file (delete)
Mendaftar suatu direktori (list)
Mengubah nama file (rename)
Melintasi sistem file (traverse)

25

Gambar 8 : Direktori satu level


Organisasi file dan direktori disarankan yang seefisien mungkin sehingga
dapat menempatkan file dengan cepat. Selain itu dalam penamaan file dan
direktori harus nyaman untuk user. Dua user dapat memberikan nama file yang
sama. File yang samadapat mempunyai beberapa nama. Dalam organisasi file dan
direktori juga perlu dilakukan pengelompokan file berdasarkan property, misalnya
semua program Java, game dan lain-lain.

2.2.3.1 Direktori Satu Level


Direktori ini hanya terdiri dari satu direktori untuk setiap user (Gambar
8).Pada direktori jenis ini terjadi permasalahan penamaan dan pengelompokan
berdasarkan user.
2.2.3.2 Direktori Dua Level
Direktori ini terdiri dari dua level yang memisahkan direktori untuk setiap
user (Gambar 9). Setiap file diberi nama path, dapat mempunyai nama file yang
sama untuk user yang berbeda, mempunyai kapabilitas pencarian, tetapi belum
dilakukan pengelompokan.

26

Gambar 9 : Direktori dua level


2.2.3.3 Direktori Berstruktur Pohon
Direktori berstruktur pohon merupakan struktur direktori yang biasa
digunakan.Pohon mempunyai direktori root. Setiap file pada sistem mempunyai
nama path yang unik (Gambar 10).

Gambar 10 : Direktori berstruktur pohon


Pada direktori ini pencarian file dan direktori lebih efisien, mengelompokkanfile
dan dapat mengakses direktori dan sub direktori.
Sebuah direktori atau subdirektori berisi kumpulan file atau sub
direktori.Sebuah direktori merupakan file yang diperlakukan dengan cara khusus.
Semua direktori mempunyai format internal yang sama. Satu bit dalam setiap
masukan direktori merupakan masukan sebagai file (0) atau sebagai subdirektori
(1).

27

Sistem call khusus digunakan untuk membuat dan menghapus direktori.


Namapath dapat dibagi menjadi dua tipe yaitu nama path absolut dan relatif.
Pada saatmembuat file baru akan dilakukan pada current directory. Demikian juga
pada saatmembuat direktori baru.
2.2.3.4 Direktori Acyclic Graph
Struktur tree melarang menggunakan bersama-sama file dan direktori.
Padadirektori acyclic graph memungkinkan direktori mempunyai subdirektori dan
file yangdigunakan bersama-sama. File dan subdirektori yang sama mungkin
berada pada duadirektori yang berbeda (Gambar 11).

Gambar 11 : Direktori acyclic graph

Direktori acyclic-graph diimplementasikan dalam beberapa cara. Cara


yangumum, pada beberapa system UNIX, adalah membuat entry direktori baru
yang disebutlink. Sebuah link berupa sebuah pointer ke file atau subdirektori lain.
Sebuah linkdapat diimplementasikan sebagai nama path absolut atau relatif
(sebuah symbolic link).Sebuah link berbeda dari direktory asal. Link
diindentifikasi oleh format pada direktori entry dan memberi nama pointer secara
tak langsung. Pendekanan lain denganmenduplikasi semua informasi pada
direktori yang digunakan bersama-sama sehinggakedua entri identik dan sama.
Cara ini menyebabkan informasi asli dan duplikasi tidak dapat dibedakan.

28

Permasalahan

mendasar

adalah

memelihara

konsistensi

jika

file

dimodifikasi.Struktur direktori acyclic-graph lebih fleksibel daripada struktur


pohon, tetapi lebih Gambar 11 : Direktori acyclic graphkompleks. Sebuah file
mungkin mempunyai lebih dari satu nama path, konsekuensinya, nama file yang
berbeda harus merujuk ke file yang sama. Jika mencoba melintasikeseluruhan
sistem file (misalnya untuk akumulasi statistik pada semua file) struktursharing
tidak boleh dilintasi lebih dari satu kali.
Masalah

lainnya

melibatkan

penghapusan.

Kapan

ruang

yang

sudahdialokasikan untuk file yang digunakan bersama-sama dapat di dealokasi


dan digunakan lagi. Pendekatan lain untuk penghapusan adalah menyediakan file
sampai semua acuandihapus.
2.2.4

Proteksi

Informasi yang disimpan dalam system komputer harus diproteksi dari


kerusakan fisik (reliability) dan akses yang tidak benar (protection).Reliability
biasanya dilakukan dengan duplikasi copy dari file. Beberapa system komputer
mempunyai sistem yang secara otomatis (atau melalui intervensi operator
komputer) menduplikasi file ke tape secara regular dari sistem file yang secara
tiba-tiba dihapus. Protection, sebaliknya, dapat dilakukan dalam beberapa cara.

2.2.4.1 Tipe Akses


Mekanisme proteksi dengan tipe akses file terbatas yang dapat dibuat.
Akses diperbolehkan atau tidak tergantung beberapa faktor, satu diantaranya
permintaan tipe akses. Beberapa operasi yang disediakan :
Membaca dari file (read)
Menulis ke file (write)
Menjalankan file (execute)
Menambah isi file (append)
Menghapus file (delete)
Melihat nama dan atribut file (list)

29

Operasi yang lain, seperti pemberian nama, meng-copy atau mengubah file, juga
harus

dikontrol.

Untuk

beberapa

alasan,

fungsi

level

lebih

tinggi

(sepertimengcopy) diimplementasikan oleh system program yang menggunakan


system calllevel lebih rendah. Proteksi disediakan hanya pada level lebih rendah.
Sebagai contoh,meng-copy file diimplementasikan dengan deretan permintaan
membaca. Dalam hal ini user dengan akses read dapat menyebabkan file di-copy,
dicetak dan lain-lain.

2.2.4.2 Access List dan Group


Pendekatan permasalahan proteksi yang sering digunakan adalah dengan
membuat akses secara dependent pada identifikasi user. Skema umum
untukimplementasi akses identity-dependent dengan menghubungkan masingmasing file dan direktori dengan sebuah access list yang menentukan nama user
dan tipe akses yangdiijinkan untuk setiap user.
Bila user meminta akses ke file khusus, sistem operasi memeriksa access
list.Jika user tersebut terdaftar, akses diijinkan, sebaliknya terjadi protection
violation dandilarang mengakses file.Masalah pokok dengan access list adalah
ukuran. Jika ingin mengijinkan usermembaca file, harus didaftar semua user
dengan akses read. Teknik ini mempunyai duakonsekuensi yaitu membangun
sebuah daftar mungkin kesulitan dan directory entryyang sebelumnya mempunyai
ukuran tetap sekarang menjadi ukuran bervariasi,sehingga muncul permasalahan
manajemen ruang.Masalah ini dipecahkan dengan melakukan pengetatan terhadap
access list.
Beberapa system memperkenalkan tiga klasifikasi user :
Owner. User yang membuat file
Group. Kumpulan user yang menggunakan file bersama-sama dan
memerlukanakses yang sama
Universe. Semua user lain dalam system.

30

Agar sistem diatas bekerja dg baik, keanggotaan group harus dikontrol


secaraketat. Sebagai contoh, dalam sistem UNIX, group dapat dibuat dan
dimodifikasi hanya oleh manager (superuser).
2.2.4.3 Contoh Proteksi : UNIX
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 (Gambar 13).

Gambar 13 : Proteksi file dan direktori pada UNIX

2.2 Implementasi Sistem File


implementasi sistem file yang meliputi pokok bahasan struktur sistem file,
implementasi direktori, metode alokasi, manajemen ruang bebas, efisiensi dan
performansi, perbaikan, sistem file berstruktur log dan network file sistem
Pada level terendah, I/O control berisi device driver dan interrupt handler untuk
mengirim informasi antara memori dan sistem disk. Basic file system berisi
31

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
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.
2.2.1 Struktur Sistem File
Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian
besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki
dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk
menyimpan berbagai macam berkas, yaitu:
Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca,
memodifikasi, dan menulis di disk tersebut.
Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk
mengakses setiap berkas baik secara berurut mau pun tidak berurut, dan berpindah
dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan
menunggu disk berputar.

32

Disk Organization
2.2.2 Metode Pengalokasian

2.2.2.1 Contiguous Allocation (Alokasi Berurutan)


Setiap file menempati sekumpulan blok yang berurutan pada disk.

Kelebihan: Model ini sangat sederhana karena hanya membutuhkan lokasi


awal (block #) dan panjang (jumlah blok), Akses pada blok disk dilakukan

secara random .
Kekurangan: memakan banyak ruang (permasalahan dynamic storageallocation). File yang disimpan secara berurutan tidak dapat berkembang.

Contoh Contiguous Allocation


2.2.2.2 Linked Allocation (Alokasi Berhubungan)
Setiap file adalah sebuah linked list dari blok-blok terpisah pada disk.

33

Kelebihan: Berhubungan mempunyai bentuk yang sederhana, hanya


memerlukan alamat awal. Sistem manajemen ruang bebas pada alokasi

berhubungan. Tidak memakan banyak ruang.


Kekurangan: tidak menggunakan random access.

Contoh Linked Allocation

2.2.2.3 Indexed Allocation (Alokasi Berindeks)

Pointer digabungkan didalam suatu blok yang dinamakan blok indeks


Setiap file memiliki blok indeks masing-masing
Direktori mengandung alamat dari blok indeks
Kelemahan: Jika blok indeks terlalu kecil, maka itu tidak akan bisa

memuat pointer yang cukup untuk sebuah file yang besar


Suatu mekanisme akan dibutuhkan menangani masalah tersebut

34

Contoh Indexed Allocation

2.2.2.4 Kinerja dari Metode Alokasi


Countiguous allocation: Efisien untuk file kecil. Mendukung akses secara
langsung
Linked allocation: Mendukung akses secara sequential
Indexed allocation: Tergantung dari struktur index, ukuran file, dan posisi dari
blok yang dibutuhkan
2.2.3 Manajemen Ruang Kosong
2.2.3.1 Bit Vector
Daftar ruang kosong diimplementasikan sebagai bit map atau bit vector
Setiap bit merepresentasikan 1 blok. Blok yang kosong ditandai dengan angka 1
dan blok yang ada isinya ditandai dengan angka 0

35

Perhitungan nomor blok kosong pada vektor bit ini adalah :


(jumlah bit per word)*(jumlah nilai-0 word) + offset dari bit pertama.
Kelemahan dari cara ini : pemetaan bit-nya membutuhkan ruang tambahan (blok
tersendiri).
2.2.3.2 Linked List
Skema ini menghubungkan blok-blok yang masih kosong menjadi linked list
Blok kosong pertama pointer menunjuk ke blok kosong kedua, dan blok kosong
kedua pointer menunjuk ke blok ketiga yang kosong

Keunggulan : tidak membutuhkan terlalu banyak ruang khusus untuk pointer


Kelemahan : sulit untuk mendapatkan ruang kosong berurutan dengan mudah
2.2.3.3 Grouping
Menggunakan satu blok untuk menyimpan alamat blok-blok kosong di dekatnya.
Jika blok telah terisi, maka akan terhapus, dan blok alamat kembali kosong

36

2.2.3.4 Counting
Ruang kosong list berupa urutan blok-blok kosong, maka dilakukan pendaftaran
rangkaian blok kosong dengan memasukkan alamat blok kosong pertama dari
rangkaian, lalu disertakan jumlah blok kosong yang bersebelahan dengannya

2.2.4 Implementasi Direktori


2.2.4.1 Direktori pada CP/M
Direktori pada CP/M merupakan direktori entri yang mencakup nomor blok
disk untuk setiap file.

2.2.4.2 Direktori pada MS-DOS


MS-DOS merupakan sistem direktori hierarki atau berstruktur pohon

37

2.2.4.3 Direktori pada UNIX


i-node berisi informasi tentang :
1.
2.
3.
4.
5.

tipe
ukuran
waktu
owner
blok-blok di disk

Contoh Directory di Linux


/bin
/boot
/dev
/etc
/lib

2.2.5 Efisiensi Dan Kerja


2.2.5.1 Efisiensi
Penggunaan yang efisien dari ruang disk sangat tergantung pada
alokasi disk dan algoritma direktori yang digunakan
2.2.5.2 Unjuk Kerja
Sekali algoritma sistem berkas dipilih, kita tetap dapat mengembangkan
kinerja dengan beberapa cara. Kebanyakan dari disk controller mempunyai
memori lokal untuk membuat on-board cache yang cukup besar untuk menyimpan
seluruh tracks dengan sekejap.

38

2.2.6 Recovery

2.2.6.1 Backup dan Restore


Dikarenakan disk magnetik kadang-kadang gagal, perawatan harus
dijalankan untuk memastikan data tidak hilang selamanya. Oleh karena itu,
program sistem dapat digunakan untuk back up data dari disk menuju ke media
penyimpanan yang lainnya, seperti sebuah floppy disk, tape magnetik, atau disk
optikal. Recovery dari kehilangan sebuah berkas individu, atau seluruh disk,
mungkin menjadi masalah dari restoring data dari backup.

39

Daftar pustaka
http://terminaltechno.blog.uns.ac.id/2009/12/13/implementasi-sistem-file/
http://mohiqbal.staff.gunadarma.ac.id/Downloads/files/5359/09.Manajemen+Siste
m+File.ppt

40

Daftar pustaka
http://arna.lecturer.pens.ac.id/Diktat_SO/9.Sistem%20File.pdf
http://manajementos.blogspot.com/2010/10/sistem-manajemen-file.html

41

Anda mungkin juga menyukai