Anda di halaman 1dari 11

Bab 14.

Struktur Direktori
Daftar Isi

Pendahuluan
Atribute dan Struktur Direktori
Operasi Direktori
Direktori Bertingkat
Direktori Berstruktur Pohon
Direktori Berstruktur Graf
Mounting
Berbagi Berkas
Rangkuman
Rujukan

Pendahuluan
Direktori atau folder merupakan suatu entitas dalam sebuah sistem berkas yang
mengandung berkas atau direktori lain. Pada hakikatnya, berkas atau direktori lain
tersebut terdapat didalam disk, sedangkan direktori hanya menyediakan link atau
mengarahkan pada berkas yang ada. Dapat dikatakan bahwa, direktori digunakan sebagai
sarana untuk pengorganisasian berkas pada suatu system computer. Dengan adanya
direktori, setiap berkas dapat dikelompok-kelompokkan. Sebuah direktori dapat berisi
berkas maupun direktori lain, sehingga direktori dapat juga disebut sebagai berkas
istimewa. Dalam pengorganisasian sebuah berkas, sistem operasi dapat mempartisi disk
menjadi beberapa direktori atau menjadikan dua disk menjadi sebuah direktori.

Rujukan
[Silberschatz2002] Abraham Silberschatz, Peter Galvin, dan Greg Gagne. 2002. Applied
Operating Systems. Sixth Edition. John Wiley & Sons.

[Stallings2001] William Stallings. 2001. Operating Systems: Internal and Design


Principles. Fourth Edition. Edisi Keempat. Prentice-Hall International. New Jersey.

[Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997. Operating


Systems Design and Implementation. Second Edition. Prentice-Hall.

[WEBArpaciD2005] Andrea C Arpaci-Dusseau dan Remzi H Arpaci-Dusseau. 2005. CS


537: Introduction to Operating Systems – File System: User Perspective –
http://www.cs.wisc.edu/ ~remzi/ Classes/ 537/ Fall2005/ Lectures/ lecture18.ppt .
Diakses 8 Juli 2006.
[WEBBabicLauria2005] G Babic dan Mario Lauria. 2005. CSE 660: Introduction to
Operating Systems – Files and Directories – http://www.cse.ohio-state.edu/ ~lauria/
cse660/ Cse660.Files.04-08-2005.pdf . Diakses 8 Juli 2006.

[WEBCarter2004] John Carter. 2004. CS 5460 Operating Systems – Lecture 19: File
System Operations and Optimizations – http://www.cs.utah.edu/ classes/ cs5460/
lectures/ lecture19.pdf . Diakses 29 Mei 2006.

[WEBChung2005] Jae Chung. 2005. CS4513 Distributed Computer Systems – File


Systems – http://web.cs.wpi.edu/ ~goos/ Teach/ cs4513-d05/ slides/ fs1.ppt . Diakses 7
Juli 2006.

[Nana Langstedt] Nana Langstedt. 2005. How to mount partitions and file-systems in
Linux – http://www.tuxfiles.org/linuxhelp/mounting.html . Diakses 27 April 2007.

[Mayang Sarup] Mayang Sarup. 2001. The Linux Filesystem explained –


http://www.freeos.com/articles/3102/ . Diakses 27 April 2007.

Atribute dan Struktur Direktori


Atribut Direktori

Atribut atau informasi dalam suatu direktori dapat berbeda-beda tergantung pada sistem
operasi yang digunakan. Sebagai sebuah berkas, direktori bisa memiliki beberapa atribut,
antara lain:

a. Nama, merupakan nama dari direktori itu sendiri.


b. Alamat, merupakan alamat dari direktori tersebut.

c. Tanggal, berisi keterangan mengenai tanggal pembuatan direktori tersebut.

d. Ukuran, merupakan besarnya ukuran suatu direktori, biasanya dalam satuan byte,
KiloByte, MegaByte, GigaByte. Dimana ukuran tersebut merupakan ukuran dari
berkas-berkas yang ada dalam direktori. Batas maksimum dari suatu direktori
bergantung pada sistem berkas yang digunakan.

e. Proteksi, berguna sebagai perlindungan. Hal ini mencakup siapa saja yang berhak
mengakses, penyembunyian file, read-only, dan lain-lain. Dalam Unix, proteksi
berguna untuk mengubah atribut berkas dengan menggunakan perintah "chmod".

Atribut-atribut pada direktori di-design sewaktu pembuatan sistem operasi, sehingga


atribut yang ada tergantung pada pembuat sistem operasi tersebut. Atribut-atribut diatas
merupakan atribut yang umum dan sering digunakan.
Struktur Direktori

Mempelajari struktur direktori, memberikan kita pemahaman bagaimana menyusun


sebuah direktori dalam suatu sistem berkas. Ada beberapa tujuan yang ingin dicapai
dalam menyusun sebuah direktori dalam suatu sistem. Masalah penamaan berkas,
pengelompokan berkas dan berbagi berkas (file sharing) merupakan beberapa contoh
masalahnya. Ada 3 struktur direktori yang dikenal, antara lain:

 Struktur Direktori Bertingkat, dimana direktori ini dibagi menjadi direktori satu
tingkat (Single Level Directory) dan direktori dua tingkat (Two Level Directory).
 Direktori berstruktur pohon (Tree-Structured Directories).

 Direktori berstruktur graf, dimana direktori ini dibagi menjadi struktur graf asiklik
(Acyclic-structured Directory) dan struktur graf sederhana (General-graph
Directory).

Bentuk-bentuk direktori tersebut mempunyai nilai historis tersendiri. Misalnya direktori


bertingkat satu, dimasa-masa awal perkembangan komputer terdahulu, kapasitas dari
secondary storage masih terbatas. Besarnya hanya berkisar beberapa MegaByte saja.
Oleh karena itu, struktur direktori bertingkat satu sudah mencukupi untuk kebutuhan
penggunaan komputer sehari-hari. Namun, seiring berkembangnya zaman direktori satu
tingkat tersebut dirasakan kurang mencukupi dikarenakan berbagai keterbatasan yang
dimilikinya. Setelah itu, Muncullah direktori dua tingkat dan seterusnya. Hal-hal itulah
yang akan kita lihat dalam beberapa pembahasan selanjutnya mengenai struktur direktori.

Operasi Direktori
Silberschatz, Galvin dan Gagne mengkategorikan operasi-operasi terhadap direktori
sebagai berikut:

a. Mencari berkas: Bila suatu saat seorang user atau sebuah aplikasi ingin
melakukan suatu operasi terhadap suatu berkas, tentu berkas tersebut harus dibuka
terlebih dahulu. Untuk itu, sebuah direktori harus mencari entri yang bersesuaian
dengan file tersebut dengan menelusuri struktur dari direktori yang bersangkutan.
b. Membuat berkas: Saat sebuah berkas baru dibuat, maka sebuah entri akan
ditambahkan ke direktori.

c. Menghapus berkas: Ketika suatu berkas tidak dibutuhkan lagi, maka berkas
tersebut bisa dihapus dari direktori.

d. Menampilkan isi Direktori: Menampilkan seluruh atau sebagian daftar berkas-


berkas yang ada di direktori dan atribut dari berkas-berkas dalam direktori
tersebut (misal, information access control, type, usage information).

e. Mengubah nama berkas: Nama suatu berkas merepresentasikan isi berkas


terhadap user. Oleh karena itu, nama berkas harus bisa diubah-ubah ketika isi dan
kegunaannya sudah berubah atau tidak sesuai lagi. Mengubah nama suatu berkas
memungkinkan berpindahnya posisi berkas didalam struktur direktori.

f. Akses sistem berkas: User bisa mengakses setiap direktori dan setiap berkas
yang berada dalam struktur direktori.

g. Update direktori: Karena sebagian atribut dari berkas disimpan dalam direktori,
maka perubahan yang terjadi terhadap suatu berkas akan berpengaruh terhadap
atribut dari berkas yang bersangkutan di direktori tersebut.

Direktori Bertingkat
Direktori Satu Tingkat (Single Level Directory)

Direktori Satu Tingkat (Single Level Directory) merupakan suatu struktur direktori yang
paling sederhana. Semua berkas yang ada disimpan dalam direktori yang sama. Direktori
Satu Tingkat ini memiliki keterbatasan, yaitu bila berkas bertambah banyak atau bila
system memiliki lebih dari satu user. Jumlah berkas yang terlalu banyak dalam sebuah
direktori dapat menyebabkan ketidaknyamanan. Hal ini mungkin saja terjadi karena user
hanya dapat menyimpan berbagai berkas (misal: games, video, surat) dalam sebuah
direktori saja.

Gambar 14.1. Single Level Directory

Direktori Dua Tingkat (Two Level Directory)

Pada Direktori Satu Tingkat (Single Level Directory), sering terjadi kesulitan dalam
menentukan nama file dari dua user yang berbeda. Penyelesaian umumnya adalah dengan
membuat direktori terpisah untuk tiap user yang dikenal dengan User File Directory
(UFD). Di Struktur Direktori Dua Tingkat (Two Level Directory), setiap user mempunyai
User File Directory (UFD) masing-masing. Ketika user melakukan login, maka Master
File Directory (MFD) dipanggil. Indeks yang dimiliki oleh MFD didasarkan pada
username atau account number, dan setiap entry menunjuk pada UFD user tersebut.
Sehingga, user bisa mempunyai nama berkas yang sama dengan berkas lain.

Gambar 14.2. Two Level Directory

Direktori Berstruktur Pohon


Gambar 14.3. Tree-Structured Directories

Pada Tree-Structured Directories, setiap user dapat membuat subdirectory sendiri dan
mengorganisasikan berkas-berkas yang dimiliki. Dalam penggunaan yang normal, setiap
user memiliki direktori saat ini (current directory). Current directory ini terdiri dari
berkas-berkas yang baru-baru ini digunakan oleh user. Nama lintasan (Path Name) bisa
digolongkan menjadi dua jenis, yaitu:

 Lintasan mutlak (absolute path): merupakan lintasan (path) yang dimulai dari
root directory.
 Lintasan relatif (relative path): merupakan lintasan (path) yang dimulai dari
direktori saat ini (current directory).

Gambar 14.4. Path


Misalkan kita sedang berada pada direktori bahan, maka penulisan lintasan (path) dari
berkas slide:

1. absolute path. yaitu "/Kuliah/OS/bahan/slide".


2. relative path. yaitu "../bahan/slide".

Dengan sistem Tree-Structured Directories, users bisa mengakses dan menambahkan file
user lain kedalam file mereka. Sebagai contoh, user B bisa mengakses berkas-berkas user
A melalui spesifikasi nama lintasannya. Dengan alternatif lain, user B bisa mengubah
current directory-nya menjadi directori yang dimiliki oleh user A dan mengakses berkas-
berkas tersebut melalui file names-nya. Sebuah lintasan (path) ke sebuah berkas didalam
Tree-Structured Directories bisa lebih panjang daripada lintasan (path) didirektori dua
tingkat (two-level directory).

Direktori Berstruktur Graf


Direktori dengan Struktur Pohon (Tree-Structured Directories) tidak memperbolehkan
adanya pembagian berkas/direktori. Sedangkan Struktur Graf Asiklik (Acyclic-structured
Directory) memperbolehkan direktori untuk berbagi berkas atau subdirektori. Jika ada
berkas yang ingin diakses oleh dua user atau lebih, maka struktur ini menyediakan
fasilitas sharing. Sehingga Acyclic-structured Directory bisa mengatasi permasalahan
pada direktori dengan struktur pohon (Tree-Structured Directories).

Permasalahan yang timbul dalam penggunaan struktur graf asiklik adalah meyakinkan
apakah tidak ada siklus. Bila kita mulai dengan struktur direktori dua tingkat (Two Level
Directory) dan memperbolehkan user untuk membuat subdirektori, maka kita akan
mendapatkan struktur direktori pohon. Mempertahankan sifat pohon bukan suatu hal
yang sulit, tetapi bila kita menambahkan sambungan pada direktori dengan struktur
pohon, maka sifat pohon akan hilang dan menghasilkan struktur graf sederhana
(General-graph Directory).

Gambar 14.5. Acyclic-structured Directory

Bila siklus diperbolehkan dalam direktori, tentunya kita tidak ingin mencari sebuah
berkas dua kali. Algoritma yang tidak baik akan menghasilkan infinite loop dan tidak
akan pernah berakhir. Oleh karena itu, diperlukan skema pengumpulan sampah
(garbage-collection scheme). Skema ini berhubungan dengan pemeriksaan seluruh sistem
berkas dengan menandai tiap berkas yang dapat diakses. Kemudian mengumpulkan
apapun yang tidak ditandai pada tempat yang kosong. Hal ini tentunya dapat
menghabiskan banyak waktu.

Gambar 14.6. General-graph Directory

Pada direktori dengan struktur pohon, setiap user dapat membuat direktori sendiri
sehingga dalam UFD akan terdapat direktori yang dibuat oleh user dan didalam direktori
tersebut dapat dibuat direktori lain (subdirectory), begitu seterusnya. Hal ini tentu akan
memudahkan user dalam pengelompokan dan pengorganisasian berkas. Masalah yang
muncul adalah ketika user ingin menggunakan suatu berkas secara bersama-sama. Hal ini
timbul dikarenakan system tidak mengizinkan seorang user mengakses direktori
pengguna lain.

Pada General-graph Directory, sebuah direktori me-link pada direktori yang me-link nya.
Dengan kata lain, jika direktori A berisi/me-link direktori B maka ketika direktori B
dibuka akan terdapat direktori A (ada siklus).

Mounting
Mounting adalah proses mengkaitkan sebuah sistem berkas yang baru ditemukan pada
sebuah piranti ke struktur direktori utama yang sedang dipakai. Piranti-piranti yang akan
di-mount dapat berupa CD-ROOM, disket atau sebuah zip-drive. Tiap-tiap sistem berkas
yang di-mount akan diberikan mount point, atau sebuah direktori dalam pohon direktori
sistem yang sedang anda akses.

Gambar 14.7. Existing File System

Daftar sistem berkas yang di-mount dapat dilihat kapan saja dengan menggunakan
perintah mount. Karena izinnya hanya diatur read-only di berkas fstab, maka tidak perlu
khawatir user lain akan mencoba mengubah atau menulis mount point yang baru. Seperti
biasa, saat ingin mengubah-ubah berkas konfigurasi seperti mengubah isi berkas fstab,
pastikan untuk membuat berkas cadangan untuk mencegah terjadinya kesalahan teknis
yang dapat menyebabkan suatu kekacauan. Kita dapat melakukannya dengan cara
menyediakan sebuah disket atau recovery-disc dan mem-back-up berkas fstab tersebut
sebelum membukanya di editor teks untuk diubah-ubah.

Semua ruang kosong yang tersedia di disk diatur dalam sebuah pohon direktori tunggal.
Dasar sistem ini adalah root directory yang dinyatakan dengan sebuah garis miring. Pada
LINUX, isi sebuah sistem berkas dibuat nyata tersedia dengan menggabungkan sistem
berkas ke dalam sebuah sistem direktori melalui sebuah proses yang disebut mounting.
Sistem berkas dapat di-mount maupun di-umount yang berarti sistem berkas tersebut
dapat tersambung atau tidak dengan struktur pohon direktori. Perbedaannya adalah sistem
berkas tersebut akan selalu di-mount ke direktori root ketika sistem sedang berjalan dan
tidak dapat di-umount. Sistem berkas yang lain di-mount seperlunya, contohnya yang
berisi hard drive berbeda dengan floppy disc atau CD-ROM.

Mounting adalah memasukkan sistem berkas ke struktur direktori utama, baik ke dalam
direktori kosong maupun ke dalam direktori yang sudah berisi. Hanya kalau dimasukkan
ke direktori yang berisi, isi dari direktori itu tidak bisa diakses selama sistem berkas
masih di-mount. Selama sistem berkas masih di-mount, isi yang akan terlihat saat
membuka direktori itu adalah isi dari sistem berkas. Ketika sistem berkas telah di-
umount, barulah isi sesungguhnya dari direktori itu dapat terlihat.

Sebenarnya setiap akan memproses suatu sistem berkas (read and write) kita harus me-
mount sistem berkas itu terlebih dahulu. Sistem operasi menyediakan fasilitas mounting
secara otomatis pada saat sistem operasi dijalankan. Pada beberapa sistem operasi, ada
device-device tertentu yang harus di-mount terlebih dahulu secara manual untuk
memproses sistem berkas didalamnya. Untuk me-mount suatu sistem berkas, sistem
operasi memerlukan data tentang device yang membawakan sistem berkas tersebut dan
mount point tempat sistem berkas itu hendak diletakkan.

Mount point adalah direktori tempat dimana akan meletakkan sistem berkas tesebut.
Kalau kita ingin me-mount sistem berkas berupa direktori, maka mount point-nya harus
berupa direktori. Sebaliknya, jika yang hendak kita mount adalah file, maka mount point-
nya juga harus berupa file.

Berbagi Berkas
Saat sebuah sistem memutuskan untuk menyediakan fasilitas berbagi berkas, maka
tantangan yang muncul adalah memperluas file-sharing agar dapat diakses oleh berbagai
sistem berkas. Hal lain yang menjadi perhatian adalah konflik yang mungkin muncul
akibat berbagi berkas, misalnya beberapa user melakukan operasi penulisan terhadap
suatu berkas secara bersama-sama.

Multiple User

Ada tiga isu penting saat suatu sistem mengakomodasi banyak pengguna (multiple users),
yaitu berbagi berkas, penamaan berkas, dan proteksi berkas. Dalam pengimplementasian
berbagi berkas dan proteksi berkas di multiple user system, suatu sistem perlu untuk
memberikan tambahan pada atribut dari suatu berkas atau direktori. Pendekatan yang
umum dilakukan adalah dengan konsep owner dan group. Dalam bahasa Indonesia, kata
owner berarti pemilik. Istilah pemilik dalam suatu sistem yang menerapkan berbagi
berkas dapat diartikan sebagai seorang user yang mempunyai hak penuh atas suatu berkas
atau subdirektori. Owner tersebut dapat melakukan apa saja terhadap berkas miliknya,
termasuk memberikan hak akses tertentu kepada user lain terhadap berkas tersebut.
Konsep dari owner ini diimplemetasikan oleh beberapa sistem dengan memanfaatkan
daftar dari nama pemakai dan diasosiasikan dengan user identifiers atau user IDs. Tentu
saja ID ini bersifat unik, tidak akan ada dua user yang memiliki ID yang sama.
Selanjutnya untuk setiap proses dan thread yang dijalankan oleh seorang user , maka
proses dan thread tersebut akan dikaitkan dengan user ID tadi.

Sekumpulan user dapat membentuk suatu group yang mempunyai group identifier dan
akan dikaitkan dengan setiap proses dan thread yang dijalankan oleh group tersebut.

Saat seorang user melakukan operasi pada suatu berkas, maka user ID dari user tersebut
akan dicocokkan dengan atribut dari pemilik berkas tersebut. Proses tersebut dilakukan
untuk mengetahui hak apa saja yang diberikan oleh pemilik berkas kepada user lain. Hal
itu juga berlaku pada group.

Remote File System

Seiring berkembangnya jaringan dan teknologi berkas, mekanisme berbagi berkas juga
mengalami perubahan. Di masa-masa awal, cara yang digunakan dalam file-sharing
adalah dengan aplikasi seperti File Transfer Protocol, disingkat FTP. Selanjutnya,
berkembang apa yang disebut dengan Distributed File Systems, disingkat DFS. Dengan
DFS, sebuah remote-directories dapat diakses dari local-machine. Cara lainnya adalah
melalui World Wide Web (www), merupakan pengembangan dari metode FTP.

Mekanisme file-sharing memungkinkan seorang user dapat mengakses sebuah sistem


berkas yang ada di komputer lain yang terhubung ke jaringan atau biasa disebut remote
machine. Ada dua kemungkinan saat seorang user terhubung ke remote machine.
Pertama, ia harus melakukan proses autentifikasi atau proses identifikasi bahwa ia telah
terdaftar sebagai seorang pengguna yang mempunyai hak akses tertentu terhadap remote
machine tersebut. Kedua, ia cukup dikenali sebagai Anonymous user yang bisa jadi
mempunyai hak akses tidak seluas dibandingkan dengan user yang telah terautentifikasi.

Client-Server Model

Remote File System mengijinkan suatu komputer untuk me-mounting beberapa sistem
berkas dari satu atau lebih remote machine. Dalam kasus ini, komputer yang
menyediakan berkas-berkas yang diakses oleh komputer-komputer lain disebut dengan
server dan komputer yang mengakses berkas-berkas yang di-sharedisebut dengan client.
Yang menjadi isu dalam model ini adalah masalah keamanan, pengaksesan suatu sistem
oleh seseorang yang tidak mempunyai hak, unauthorized user.

Failure Modes

Suatu local system dapat mengalami failure atau crash yang menyebabkan sistem
tersebut tidak dapat berfungsi sebagaimana mestinya karena berbagai hal. Teknologi
Redundant Arrays of Inexpensive Disk, disingkat dengan RAID cukup membantu hal
ini. Namun demikian, penjelasan lebih detil tentang RAID akan dibahas dalam topik-
topik lainnya, terutama yang berkaitan dengan storage.

Remote File System bukan tanpa gangguan. Kompleksitas dari sistem jaringan dan juga
adanya interaksi antara remote machine memberi peluang lebih besar akan terjadinya
kegagalan dalam sistem tersebut.

Rangkuman
Direktori atau folder merupakan suatu entitas dalam sebuah sistem berkas yang
mengandung berkas atau direktori lain. Mempelajari struktur direktori, memberikan kita
pemahaman bagaimana menyusun sebuah direktori dalam suatu sistem berkas. Ada 3
struktur direktori yang diketahui, yaitu: direktori bertingkat, direktori berstruktur pohon
dan direktori berstruktur graf.

Mounting adalah proses mengkaitkan sebuah sistem berkas yang baru ditemukan pada
sebuah piranti ke struktur direktori utama yang sedang dipakai. Piranti-piranti yang akan
di-mount dapat berbentuk CD-ROOM, disket atau sebuah zip-drive. Tiap-tiap sistem
berkas yang di-mount akan diberikan mount point atau sebuah direktori dalam pohon
direktori sistem yang sedang diakses. Mount point adalah direktori tempat dimana akan
meletakkan sistem berkas tersebut. Kalau kita ingin me-mount sistem berkas berupa
direktori, maka mount point-nya harus berbentuk direktori. Sebaliknya, jika yang ingin
di-mount adalah file, maka mount point-nya harus berbentuk file

Anda mungkin juga menyukai