SISTEM
OPERASI
Chapter 12 - File-System Interface
11.1 Konsep File
Sekilas
tentang File
File system merupakan implementasi
file dengan menggunakan disk. File dipetakan oleh system operasi ke perangkat
fisik. Perangkat fisik ini merupakan suatu perangkat penyimpanan yang biasanya
non-volatille sehingga data yang disimpan tidak akan hilang ketika aliran
listrik terputus. File adalah barisan byte dengan ukuran yang tidak tetap dan
selalu berubah - ubah dari 0 sampai batas atas yang sangat besar.
Operasi Pada
File
·
Penciptaan
File
Ada dua langkah yang diperlukan, yaitu adanya ruang
atau tempat di file system untuk suatu file dan pembuatan entry untuk file baru
di dalam suatu direktori. Direktori memasukan record nama file dan lokasinya di
file system
·
Menulis File
Sistem operasi membuat system call yang menentukan
nama file dan informasi yang akan ditulis ke dalam file.
·
Membaca File
Sistem operasi membuat system call yang menentukan nama
file dan dimana blok berikutnya (di dalam memory) dari file tersebut harus
diletakan.
·
Memposisikan
Kembali
Tidak memerlukan aksi dari I/O secara nyata, karena
sebenarnya hanya merupakan pencarian file (file seek).
·
Menghapus
File
Sebenarnya membebaskan semua ruang yang digunakan oleh
file sehingga nantinya ruang tersebut dapat digunakan oleh file lain.
·
Memotong
File
Fasilitas ini memaksa user untuk tidak menghapus file
dan kemudian menciptakannya kembali, supaya waktu yang digunakan lebih efisien.
Hal ini dilakukan ketika user ingin mengosongkan file tersebut.
·
Open(Fi)
mencari struktur direktori untuk entry Fi dan memindahkan isi entry ke memori.
·
Close (Fi)
memindahkan isi entry Fi di memori ke struktur direktori pada disk.
Atribut File
File mempunyai atribut, dimana atribut ini bervariasi
antara sistem operasi satu dengan sistem operasi lainnya, tetapi biasanya
terdiri atas beberapa atribut sebagai berikut :
·
Nama :
Merupakan satu - satunya informasi yang dapat diingat dan dibaca oleh manusia
·
Type : Merupakan
type file yang ada; yaitu executable, text, data, atau yang lain, tergantung
dari sistem operasi yang mendukungnya.
·
Lokasi :
Informasi ini merupakan sebuah pointer yang menunjuk ke perangkat dan ke lokasi
dimana file yang ditunjuk berada didalam perangkat tersebut.
·
Ukuran :
Merupakan bersarnya file terkini yang ada (dalam byte, word, atau blok) dan
kemungkinan ukuran terbesar yang diperbolehkan ada dalam atribut ini.
·
Proteksi :
File dikontrol pengaksesannya sehingga hanya user tertentu saja yang dapat
membaca, menulis/mengubah, mengeksekusi, dan lainnya.
·
Jam,
Tanggal, dan Indentifikasi User : Informasi ini dapat disimpan untuk
penciptaan, modifikasi terakhir kali, dan penggunaan terakhir. Data - data
tersebut berguna untuk proteksi, keamanan, dan monitoring data.
Tipe File
11.2 Metode Akses
1. Metode
Sequential (Berurutan)
Akses berurutan merupakan metode akses
paling sederhana. Informasi pada file diproses secara berurutan, satu record
diakses setelah record yang lain. Metode akses ini berdasarkan model tape dari
suatu file yang bekerja dengan perangkat sequentialaccess atau random-access.
Operasi read membaca bagian
selanjutnya dari file dan otomatis menambah file pointer yang melacak lokasi
I/O. Operasi write menambah ke akhir file dan ke akhir material
pembacaan baru (new end of file). File dapat di-reset ke awal dan
sebuah program untuk meloncat maju atau mundur ke n record.
Operasi pada akses berurutan
terdiri dari :
read next
write next
reset
no read after last write
(rewrite)
2. Metode
Direct (Langsung)
File merupakan logical record dengan
panjang tetap yang memungkinkan program membaca dan menulis record dengan cepat
tanpa urutan tertentu. Metode akses langsung berdasarkan model disk dari suatu
file, memungkinkan acak ke sembarang blok file, memungkinkan blok acak tersebut
dibaca atau ditulis.
Operasi file dimodifikasi untuk
memasukkan nomor blok sebagai parameter. Nomor blok ditentukan user yang
merupakan nomor blok relatif, misalnya indeks relatif ke awal dari file.
Blok relatif pertama dari file adalah 0, meskipun alamat disk absolut aktual
dari blok misalnya 17403 untuk blok pertama. Metode ini mengijinkan sistem
operasi menentukan dimana file ditempatkan dan mencegah user mengakses posisi
dari sistem file yang bukan bagian dari file tersebut.
Operasi pada akses langsung
terdiri dari :
read n
write n position to n
read next
write next
rewrite n
n = relative block number
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 menggunakan pointer untuk
mengakses file secara langsung dan menemukan masukan yang tepat.
File indeks dapat disimpan di memori.
Bila file besar, file indeks juga menjadi terlalu besar untuk disimpan di
memori. Salah satu pemecahan nya adalah membuat indeks untuk file indeks. File
indeks primer berisi pointer ke file indeks sekunder, yang menunjuk ke data
item aktual.
Contoh Index dan Relative Files
11.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.
Kumpulan node yang berisi
informasi tentang semua file
Pertama, system file dipecah ke dalam partisi, yang disebut
juga “minidisk” (pada mesin IBM) atau “volume” (pada mesin PC dan
Macintosh). Setiap disk pada sistem berisi sedikitnya satu partisi, merupakan
struktur low-level dimana file dan direktori berada. Terkadang, partisi
digunakan untuk menentukan beberapa daerah terpisah dalam satu disk, yang
diperlakukan sebagai perangkat penyimpan yang terpisah. Sistem lain menggunakan
partisi yang lebih besar dari sebuah disk untuk mengelompokkan disk ke dalam
satu struktur logika.
Kedua, setiap partisi berisi informasi mengenai file di
dalamnya. Informasi ini disimpan pada entry dalam “device directory atau
volume table of contents”. Perangkat direktori (atau direktori)
menyimpan informasi seperi nama, lokasi, ukuran dan tipe untuks semua file dari
partisi tersebut.
Informasi yang terdapat pada
direktori :
• 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)
Direktori
Satu Level (Single)
Direktori ini hanya terdiri dari satu
direktori untuk setiap user. Pada direktori jenis ini terjadi permasalahan
penamaan dan pengelompokan berdasarkan user.
Satu
direktori untuk semua user
Directori
Dua Level
Direktori ini terdiri dari dua level
yang memisahkan direktori untuk setiap user. Setiap file diberi nama path,
dapat mempunyai nama file yang sama untuk user yang berbeda, mempunyai
kapabilitas pencarian, tetapi belum dilakukan pengelompokan.
Memisahkan
direktori untuk setiap user
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
Pada direktori ini pencarian file dan
direktori lebih efisien, mengelompokkan file 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).
Sistem call khusus digunakan untuk
membuat dan menghapus direktori. Nama path dapat dibagi menjadi dua tipe
yaitu nama path “absolut” dan “relatif”. Pada saat membuat file baru
akan dilakukan pada current directory. Demikian juga pada saat membuat
direktori baru.
Direktori
Acyclic Graph
Struktur tree melarang menggunakan
bersama-sama file dan direktory. Pada direktori acyclic graph memungkinkan
direktori mempunyai subdirektori dan file yang digunakan bersama-sama. File dan
subdirektori yang sama mungkin berada pada dua direktori yang berbeda
Direktori acyclic graph diimplementasikan dalam
beberapa cara. Cara yang umum, pada beberapa system UNIX, adalah membuat entry
direktori baru yang disebut link. Sebuah link berupa sebuah
pointer ke file atau subdirektori lain. Sebuah link dapat
diimplementasikan sebagai nama path absolut atau relatif (sebuah symbolic
link). Sebuah link berbeda dari direktory asal. Link diindentifikasi
oleh format pada direktory entry dan memberi nama pointer secara tak langsung.
Pendekanan lain dengan menduplikasi semua informasi pada direktori yang
digunakan bersama-sama sehingga kedua entri identik dan sama. Cara ini
menyebabkan informasi asli dan duplikasi tidak dapat dibedakan
Permasalahan mendasar adalah memelihara konsistensi jika
file dimodifikasi. Struktur direktori acyclic-graph lebih fleksibel
daripada struktur pohon, tetapi lebih kompleks. Sebuah file mungkin mempunyai
lebih dari satu nama path, konsekuensinya, nama file yang berbeda harus merujuk
ke file yang sama. Jika mencoba melintasi keseluruhan sistem file (misalnya
untuk akumulasi statistik pada semua file) struktur sharing tidak boleh
dilintasi lebih dari satu kali.
Masalah lainnya melibatkan penghapusan. Kapan ruang yang
sudah dialokasikan untuk file yang digunakan bersama-sama dapat di dealokasi
dan digunakan lagi. Pendekatan lain untuk penghapusan adalah menyediakan file
sampai semua acuan dihapus.
11.4 File-System Mounting
Suatu sistem file harus di-mount sebelum diakses.
File yang tidak di-mount akan dilakukan proses mounting pada mount
point.
(a)Sistem eksis (b) partisi
yang tidak di-mount
Mount Point
15.5 Protection
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 sistem 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.
Tipe Akses
Mekanisme proteksi dengan tipe akses
file terbatas yang dapat dibuat. Akses diperbolehkan atau tidak tergantung
beberapa faktor, satu diantaranya permintaan tipe akses.
Operasi yang lain, seperti pemberian
nama, meng-copy atau mengubah file, juga harus dikontrol. Untuk beberapa
alasan, fungsi level lebih tinggi (seperti mengcopy) diimplementasikan oleh
system program yang menggunakan system call level 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. 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)
Access List
dan Group
Pendekatan permasalahan proteksi yang
sering digunakan adalah dengan membuat akses secara dependent pada
identifikasi user. Skema umum untuk implementasi akses identity-dependent dengan
menghubungkan masing-masing file dan direktori dg sebuah access list yang
menentukan nama user dan tipe akses yang diijinkan 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 dan dilarang
mengakses file.
Masalah
pokok dengan access list adalah ukuran. 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 memerlukan akses yang sama
·
Universe.
Semua user lain dalam system
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.
n
Device drivers manage
I/O devices at the I/O control layer
l
Given commands like “read drive1,
cylinder 72, track 2, sector 10, into memory location 1060” outputs low-level
hardware specific commands to hardware controller
n
Basic file system given
command like “retrieve block 123” translates to device driver
n
Also manages memory buffers and
caches (allocation, freeing, replacement)
l
Buffers hold data in transit
l
Caches hold frequently used data
n
File organization module understands
files, logical address, and physical blocks
l
Translates logical block # to
physical block #
l
Manages free space, disk allocation