Posted by : Pangeran1diot
Sabtu, 21 Mei 2016
Pada proses penyimpanan dan pembacaan data bisa timbul
masalah:
1. Kapasitas media penyimpanan tidak cukup (terbatas).
2. Ketika proses dihentikan, data hilang.
3. Kebutuhan mengakses data atau sebagiannya dalam waktu
bersamaan.
Oleh karena itu diperlukan media penyimpanan yang :
1. Mampu menyimpan data yang besar.
2. Mampu menjaga data walaupun proses yang mengaksesnya
dihentikan.
3. Proses yang bersamaan dapat mengakses data secara
bersama-sama, tanpa ada yang terganggu.
Solusi untuk semua masalah tsb adalah dengan menyimpan data pada disk atau
media lain dalam bentuk unit-unit yang disebut FILE. Data yang disimpan dalam bentuk file harus tetap tidak
berubah ketika proses dibentuk atau dihentikan. File bisa hilang hanya ketika
dihapus saja.
Sistem File adalah bagian sistem operasi yang menangani masalah file.
1. FILE
1.1 Penamaan File
File merupakan bentuk mekanisme abstrak. Karakteristik yang paling penting
dari mekanisme abstrak adalah cara pemberian nama suatu obyek. Ketika proses
membuat suatu file, proses akan memberi sebuah nama kepada file. Ketika proses
selesai, file masih ada dan bisa diakses oleh proses lain dengan menggunakan
nama file tsb.
Semua sistem operasi menerima bentuk nama file yang terbuat dari 1 sampai 8 karakter. Tetapi ada beberapa
sistem operasi yang membedakan huruf besar dan huruf kecil, seperti UNIX.
Contoh :
BARBARA, BARbara, BarBaRa ---->
UNIX membedakannya
----> DOS
menganggap sama
---->
WINDOWS ???
---->
LINUX ???
Kebanyakan sistem operasi mampu menangani dua bagian bentuk nama file yang
dipisah dengan titik (period), bagian yang terletak setelah
tanda titik disebut extension, yang
biasanya menggambarkan ciri khusus dari file ybs. Contoh :
- DOS nama file ----> [1
sampai 8 karakter].[1 sampai 3]
- UNIX ----> [1 sampai ? karakter].[1 sampai ?].[....].[....]
.....sampai ?
Beberapa extension file yang biasa ditemukan tampak pada tabel berikut :
Pada kasus khusus,
extension ini hanya berupa Konvensi,
seperti :
- data03.txt,
menyatakan file dalam bentuk file teks.
- program05.c
menyatakan file berupa file code bahasa C, C compiler hanya mengcompile
extension *.C.
1.2 Struktur
File
Beberapa kemungkinan bentuk struktur file tampak pada gambar 1.
a. File dibentuk dari urutan byte yang tidak terstruktur.
Akibatnya : Sistem operasi tidak tahu apa yang ada didalamnya. DOS dan UNIX
menerapkan bentuk ini, LINUX ?, WINDOWS ?
Cara mengambil isi file dengan
program.
b. File
dibentuk dari urutan record dengan panjang yang sama dan struktur internal
didalamnya.
Operasi read akan membaca satu record.
Operasi write akan overwrite/append
satu record.
Cocok untuk sistem operasi yang menerapkan Punch Card, karena ukurannya
tetap.
c. File dibentuk dari struktur organisasi tree record,
ukuran record tidak harus sama, setiap record mengandung field Key pada posisi
yang sama. Tree record diurutkan berdasarkan Key nya.
Operasinya dengan melihat Key.
Banyak diterapkan pada sistem operasi
Mainframe untuk pemrosesan data komersial.
1.3 Jenis File
UNIX dan DOS memiliki jenis file :
a. Regular File : jenis file
yang mengandung informasi user. Contoh gambar 1.
b. Directory
: file sistem yang mengatur struktur sistem file.
c. Character Special File
: File yang berhubungan dengan peralatan I/O dan memodelkan peralatan serial,
seperti Terminal, Printer, NIC.
d. Block Special File : File yang digunakan untuk memodelkan disk.
Regular File bisa berbentuk ASCII maupun binary. Keuntungan bentuk ASCII
adalah dapat ditampilkan dan dicetak seperti apa adanya dan dapat diedit
menggunakan editor yang biasa dipakai. File Binary memiliki struktur internal sendiri, contoh
dalam UNIX pada gambar 2.
Magic Number :
menyatakan bahwa file berupa file executable.
Binary file dalam
bentuk archive mengandung kumpulan library procedure (module) yang telah
dicompile tapi tidak dilink.
Seluruh sistem
operasi paling tidak harus mengenal satu jenis file executable, miliknya
sendiri. Bahkan jika file source codenya diubah, mampu melakukan compile ulang
secara otomatis. Contoh perintah UNIX : make, berada didalam shellnya.
1.4 Pengaksesan
File
Ada
dua cara :
a. Sequential Access,
proses dapat membaca seluruh byte/record dalam suatu file, mulai dari awal,
tidak boleh melompat atau keluar dari urutannya.
Cocok untuk file yang disimpan pada
media Magnetic Tape.
b. Random Access,
bisa membaca byte/record untuk berbagai macam urutan pengaksesan.
Cocok untuk file yang disimpan pada media Disk.
Jenis ini lebih sesuai untuk berbagai aplikasi, seperti sistem database
airport.
Sistem operasi Mainframe lama banyak menggunakan kedua
cara, karena memiliki dua bentuk media penyimpanan tsb.
Sedangkan sistem operasi modern tidak membedakannya,
otomatis semua file diakses secara acak (Random access).
1.5 Atribut
File
Jenis-jenis atribut
file tampak pada Tabel berikut.
1.6 Operasi
File
Sistem Call yang
biasa digunakan dalam hubungan dengan file :
a. Create
: File dibuat dan tidak berisi data.
b. Delete
: File dihapus karena tidak diperlukan lagi dan untuk memperbesar ruang disk
sisa.
Beberapa sistem operasi akan menghapus
file jika tidak digunakan dalam jangka waktu tertentu.
a. Open : Sebelum
menggunakan file, file harus diOpen dulu. Open akan menjadikan sistem mengambil
atribut dan daftar alamat disk dan meletakkan didalam memori kerja agar
diperoleh akses yang cepat.
b. Close
: Jika akses file selesai, atribut dan alamat disk tidak diperlukan lagi,
sehingga harus ditutup dan untuk memperbesar ruang tabel daftar alamat disk
internal.
c. Read : Data dibaca
dari file. Sistem menentukan banyaknya data dan menyediakan buffer untuk
menampungnya.
d. Write : Data
disimpan kedalam file. Jika posisi
berada diakhir file, maka ukuran file bertambah. Jika posisi
ditengah, data yang ada akan ditimpa.
e. Append
: Menambah data setelah data terakhir.
f. Seek : Mengatur
posisi pointer saat itu menuju posisi yang ditentukan.
g. Get Attribute : Pada UNIX,
program make perlu melihat atribut file, terutama waktu modifikasinya yang
terakhir.
h. Set Attribute
: Mengubah status atribut file.
i. Rename
: Merubah nama file.
1.7 Memory-Mapped
File
Gambar 3 (a) Proses segmentasi sebelum memetakan file ke ruang alamatnya. (b) Proses setelah memetakan file abc ke satu segmen dan membuat segmen baru untuk file xyz.
Proses memiliki dua
segmen, teks dan data. Proses melakukan sistem call COPY. Pertama, memetakan file
sumber (abc) ke sebuah segmen. Kemudian membuat segmen kosong dan memetakannya
ke file tujuan (xyz). Proses dapat mengcopy segmen sumber ke dalam segmen
tujuan menggunakan loop copy biasa, bukan Read dan Write.
Kelebihan Pemetaan
File :
- Menghilangkan
kebutuhan I/O sehingga mempermudah pemrograman.
Kekurangan Pemetaan
File :
- Sistem
sulit untuk mengetahui panjang sebenarnya dari file output (xyz).
- Hasil
pemetaan belum tentu sama dari sumbernya, jika terjadi modifikasi sumber,
outputnya belum tentu dimodifikasi juga.
- Tidak
bisa memetakan ukuran file yang lebih besar dari ukuran segmen.
2. DIRECTORY
Untuk menjaga agar
file tetap pada jalurnya dan diketahui, maka sistem file menyediakan DIRECTORY.
2.1 Sistem Directory Hirarki
Diantara bentuk sistem directory tampak pada gambar 4
Ketika file diOpen, sistem operasi mencari
directorynya sampai ditemukan nama file ybs, kemudian mengekstrak atribut dan
alamat disk langsung dari daftar directory atau dari struktur data yang
menunjukkannya, lalu meletakkan kedalam tabel didalam memory kerja.
Gambar 5. Tiga disain sistem
file. (a) Satu directory dipakai bersama oleh semua user. (b) Satu directory
per user. (c) Sembarang tree per user. Huruf-huruf menyatakan pemilik directory
atau file.
2.2 Nama Path
Penamaan Path ada
dua cara :
a. Absolute Path Name
: mengandung path dari directory root sampai file.
Selalu dimulai dari Root dan bersifat
Unik.
Di UNIX, directory dipisah dengan tanda /, DOS dengan \. Jika karakter pertama dari nama path dimulai dengan tanda tsb, maka path
termasuk jenis absolut ini.
Contoh : /usr/ast/mailbox
root
directory mengandung subdirectory usr,
dimana
didalamnya ada subdirectory ast,
dimana
didalamnya lagi ada subdirectory mailbox.
b. Relative Path Name
: Untuk seluruh kasus path yang tidak dimulai dari root, diambil secara relatif
ke directory kerja (working directory/current directory).
Contoh : Directory kerja /usr/ast,
file yang mempunyai path absolut /usr/ast/mailbox dapat diwakili dengan mailbox
saja. Seperti perintah :
cp
/usr/ast/mailbox /usr/ast/mailbox.bak
dan
cp
mailbox mailbox.bak
adalah
perintah UNIX yang menghasilkan efek yang sama.
Kebanyakan sistem
operasi mempunyai dua directory khusus, "." dan "..",
dot dan dotdot. Dot menunjukkan directory saat itu dan Dotdot menunjukkan
parent directory. Contoh gambar 6
Directory kerja /usr/ast, copy file
/usr/lib/dictionary ke directorynya sendiri dengan :
cp ../lib/dictionary .
2.3 Operasi
Directory
Beberapa operasi
directory :
a. Create,
membuat directory yang kosong kecuali dot dan dotdot yang otomatis dimasukkan
oleh sistem.
b. Delete,
menghapus directory, Hanya directory yang kosong yang dapat dihapus.
c. OpenDir,
Mendaftar seluruh file yang ada di directory ybs.
d. CloseDir,
Setelah selesai membaca directory, maka harus ditutup untuk memperbesar ruang
tabel internal.
e. ReadDir,
Menghasilkan daftar directory pada directory yang sedang dibuka.
f. Rename,
Mengubah nama directory.
g. Link, Cara agar
file dapat muncul dibeberapa lokasi directory.
h. UnLink,
Menghilangkan Link.
3. IMPLEMENTASI
SISTEM FILE
Menjelaskan cara
file dan directory disimpan, ruang disk diatur dan membuat segalanya efisien
dan reliable.
3.1 Mengimplementasikan
File
Kunci masalah
implementasi penyimpanan file adalah selalu mengetahui perubahan blok disk
akibat ada tidaknya file.
a.
Contiguous
Allocation
Ini merupakan alokasi paling sederhana
dengan menyimpan setiap file kedalam blok data yang berurutan didalam disk.
Kelebihannya :
- Mudah
implementasinya, karena untuk mengetahui letak blok file hanya cukup mengingat
satu nomor, blok yang pertama saja.
- Kinerjanya
sangat bagus, karena seluruh file dapat dibaca dari disk dalam satu operasi
saja.
Kekurangannya :
- Tidak
bisa dialokasikan jika ukuran maksimum file tidak diketahui.
- Mudah
terjadi fragmentasi, sisa blok yang tidak digunakan.
b.
Linked
List Allocation
Menyimpan file dalam skema Linked List, seperti tampak pada gambar 7.
Kelebihannya :
- Seluruh
blok dapat dipakai, tidak terjadi fragmentasi.
Kekurangannya :
- Pengaksesan
file secara acak akan lambat.
- Kebutuhan ukuran blok data meningkat karena pointer juga
memerlukan beberapa byte.
a.
Linked
List Allocation menggunakan Indeks
Caranya sama seperti point b tetapi menambahkan tabel berindeks kedalam
memory, seperti pada gambar 8 berikut.
File A menggunakan blok 4,7,2,10 dan 12. Sedangkan file B menggunakan 6,3,11 dan 14.
DOS menggunakan metode alokasi ini.
Kelebihannya :
- Pengaksesan
file secara acak akan lebih cepat.
Kekurangannya :
- Seluruh
tabel harus selalu ada didalam memory, sehingga mengurangi kapasitas memory.
a.
I-node
alokasi file dengan menerapkan tabel
yang berukuran kecil yang disebut i-node (index-node) yang mendaftar atribut
dan alamat disk dari blok file. Tampak pada gambar 9.
Untuk
file-file yang berukuran besar, dipetakan ke blok yang disebut Single Indirect Block (SIB) yang mengandung
alamat disk tambahan. Jika masih tidak cukup maka alamat lain dipetakan ke Double Indirect Block (DIB) yang
mengandung alamat blok yang mendaftar SIB. Setiap SIB menunjuk ke beberapa
ratus blok data. Jika ternyata masih kurang lagi, Triple Indirect Block (TIB) bisa digunakan.
- UNIX menggunakan metode alokasi ini.
- WINDOWS
???
- OS/2 ???
3.2 Mengimplementasikan
Directory
a.
Directory
pada sistem CP/M
Sistem ini hanya memiliki satu directory
saja, sehingga semua file harus dicari dan dilihat dari directory ini. Tampak
pada gambar 10.
- User code
digunakan untuk mengetahui nama pemilik file ybs.
- Extent akan
diperlukan bila ukuran file lebih besar dari 16 blok, sehingga memerlukan beberapa
directory. Extent berisi nomor urut.
- Block Count
menunjukkan jumlah blok yang digunakan dari 16 blok yang disediakan.
- 16 bit terakhir berisi
nomor blok disk.
b.
Directory
pada DOS
Sistem DOS menggunakan directory
seperti tampak pada gambar 11.