Sistem Operasi
Disusun Oleh :
Nama NIM
Syahril Sangrila Sumitro 1507055015
Irwan Ripansyah 1507055004
Yoseph Sianturi 15070550031
Niko Saputro P 1507055036
Jeri Triswanto 1507055048
BAB 1
PENDAHULUAN
A. Latar Belakang
Salah satu bagian yang sangat tampak pada sebuah sistem operasi adalah sistem file. Banyak
program yang membaca atau menulis setidaknya pada sebuah file. Bagi kebanyakan
pengguna, performance dari sebuah sistem operasi sangat ditentukan oleh interface,
structure, dan reliability dari sistem file-nya. Hal ini disebabkan oleh kemampuan yang
dimiliki sistem file dalam menyediakan mekanisme penyimpanan secara online dan
pengaksesan isi file, yaitu data atau program. Sistem file terdapat pada secondary storage
yang dirancang agar mampu menampung data dalam jumlah yang besar secara permanen.
Setiap file yang telah kita simpan, dalam implementasinya membutuhkan sebuah struktur
direktori untuk mengaksesnya kembali. Sistem operasi harus mampu mengimplementasikan
sistem file dengan berbagai tipe yang berbeda. Pada bab ini akan dibahas bagaimana
penanganan yang dilakukan oleh sistem operasi. Bab ini juga membahas mengenai
implementasi sistem file, implementasi direktori, serta beberapa lapisan yang ada di file
system dan virtual file system.
B. Tujuan
- Untuk memahami bagaimana implementasi sistem file dan direktori
- Untuk mengetahui beberapa sistem file seperti Log dan Network File Sistem
C. Manfaat
- Dapat Mengetahui beberapa sistem file seperti Log dan Network File Sistem
BAB II
PEMBAHASAN
Disk merupakan tempat penyimpanan sekunder dimana sistem file disimpan. Ada dua
karakteristik dalam penyimpanan banyak file, yaitu:
2. Sebuah blok yang menyimpan informasi yang kita cari, dapat diakses secara
langsung. Dalam aplikasinya, kita dapat mengakses file secara random maupun
sequential.
Sistem operasi menyediakan satu atau lebih sistem file untuk menyimpan dan
mengambil data dengan mudah. Struktur file itu sendiri terdiri dari beberapa layer.
Strukturnya dapat dilihat pada Gambar 1, Layered File System.
Gambar 1. Layered File System
Lapisan yang terhubung dengan program aplikasi yaitu logical file system yang
bertugas dalam mengatur informasi metadata. Metadata meliputi semua struktur dari sistem
file, kecuali data sebenarnya (isi dari file). Lapisan ini juga mengatur struktur direktori untuk
menyediakan informasi yang dibutuhkan file organization modul. Struktur dari sebuah file
ditentukan oleh lapisan ini dengan adanya file control block.
Pada disk, sistem file bisa mengandung informasi mengenai bagaimana cara mem-
boot sistem operasi, jumlah total blok, jumlah dan lokasi dari free blocks, struktur direktori
dan file individu. Berikut ini penjelasan dari struktur-struktur tersebut.
Mengandung informasi yang dibutuhkan oleh sistem untuk mem-boot sistem operasi
dari volume yang dimilikinya. Jika disk tidak mempunyai sistem operasi, blok disknya
bisa saja kosong. Pada UFS, ini disebut boot block, sedangkan pada NTFS, ini disebut
partition boot sector.
Mengandung informasi khusus mengenai partisi, misalnya jumlah blok yang dipartisi,
ukuran blok, free block count dan free block pointer, free FCB count, dan FCB
pointer. Pada UFS, disebut superblock, dan pada NTFS, disimpan di tabel master file.
Directory structure per file system
Digunakan untuk mengorganisasi file. Pada UFS, struktur direktori ini meliputi nama
file serta jumlah inode yang terkait dan disimpan dalam tabel master file.
Per-file FCB
Informasi yang ada di dalam memori digunakan untuk pengaturan sistem file dan
peningkatan performance dengan caching. Berikut ini adalah penjelasan mengenai
strukturnya :
Untuk membuat file baru, program aplikasi memanggil logical file system karena
logical file system mengetahui format dari struktur direktori. Kemudian, FCB yang baru
dialokasikan dan sistem membaca direktori yang dituju ke memori, mengubahnya dengan
nama file, dan FCB yang baru menulisnya ke dalam disk. Contoh struktur FCB, bisa dilihat
pada Gambar 16.2, File Control Block
Gambar 2. File Control Block
Beberapa sistem operasi termasuk UNIX, memperlakukan file sama seperti direktori.
Sistem operasi yang lain, seperti Windows NT, mengimplementasikan system call yang
terpisah untuk file dan direktori, direktori diperlakukan sebagai objek yang berbeda dari file.
Pada tahap selanjutnya, logical file system memanggil file organization module untuk
memetakan direktori M/K ke disk-block number yang dikirimkan ke sistem file dasar dan
sistem kendali M/K.
Setelah file berhasil dibuat, file tersebut dapat digunakan untuk operasi M/K. Pertama,
tentu saja file tersebut harus dibuka terlebih dahulu. Perintah open() mengirim nama file ke
sistem file. System call open() mencari system-wide open-file table untuk melihat apakah file
yang ingin dibuka sedang digunakan oleh proses lain. Jika benar, maka entry dari per-process
open-file table menunjuk system-wide open-file table yang sedang eksis.
Ketika file sedang dibuka, nama file tersebut dicari dalam struktur direktori. Setelah
nama file ditemukan, FCB dari file tersebut disalin ke dalam system-wide open-file table di
memori. Pada tahapan selanjutnya, sebuah entry dibuat dalam per-process open-file table di
mana entry tersebut menunjuk ke system-wide open-file table. Semua bentuk operasi yang
melibatkan file dilakukan oleh pointer dari entry ini. Selama file tersebut belum ditutup,
semua operasi dari file dilakukan pada open-file table.
Ketika sebuah file ditutup, entry dari per-process table dihapus, dan jumlah entry dari
system-wide open-file table dikurangi. Ketika semua pengguna yang menggunakan file
menutup file tersebut, semua metadata yang telah diubah disalin kembali ke disk berdasarkan
struktur direktori, dan yang terakhir, entry dari system-wide open-file dihilangkan atau
dihapus. Gambar 3. Fungsi open Sebuah File mengilustrasikan pembukaan sebuah file.
1. Superblock object. Objek ini menyimpan informasi tentang mounted file system atau
sistem file secara keseluruhan.
2. Inode object. Objek ini menyimpan informasi umum tentang file tertentu (individual
file).
3. File object. Objek ini menyimpan informasi tentang file yang sedang dibuka.
4. Dentry object. Objek ini menyimpan informasi tentang link-link dari sebuah entry
directory file.
Lapisan yang pertama adalah file system interface. Contohnya adalah beberapa system
call seperti read(), write(), open() dan lainnya. System call ini tidak berhubungan langsung
dengan sistem, namun terhubung melalui sebuah lapisan abstrak yaitu virtual file system.
Lapisan yang Kedua adalah VFS Interface. Virtual file system memiliki dua fungsi penting,
yaitu:
2. Virtual file system interface didasarkan pada struktur representasi file yang disebut
vnode, yang memiliki numerical designator yang unik untuk setiap network file.
Lapisan yang ketiga adalah sistem file dengan berbagai tipe. Secara umum, terdapat
tiga macam tipe sistem file, yaitu:
1. Disk-based file system. Sistem file ini mengatur ruang memori yang tersedia di
dalam partisi disk lokal. Misalnya, Ext2 (Second Extended file system), Ext3 (Third
Extended file system), dan Reiser file system yang tedapat di Linux.
2. Network file system. Sistem file ini terdapat di network, misalnya NFS.
3. Special file system. Sistem file ini tidak terdapat di disk space, baik lokal maupun
network, misalnya /proc file system.
File berisi sekumpulan blok. Sistem manajemen file bertanggung jawab untuk alokasi
blok-blok disk ke file. Dua hal penting yang harus ditangani adalah pencatatan ruang yang
dialokasikan untuk file, pencatatan ruang bebas yang tersedia di disk. Sistem file meliputi
alokasi file, pencatatan ruang disk, shared file, kehandalan system file, serta kinerja sistem
file.
Masalah pokok dalam alokasi file adalah pencatatan blok-blok yang digunakan file.
Beragam metode dapat digunakan, diantaranya alokasi berturutan/kontigu (contigous
allocation). Teknik ini merupakan skema alokasi paling sederhana, yaitu menyimpan file
sebagai blok-blok data berturutan (kontigu) di disk.
Kelemahannya adalah Hanya bila ukuran maksimum diketahui pada saat file
diciptakan. Layak digunakan kecuali bila ukuran maksimum diketahui pada saat file
diciptakan. Tanpa informasi itu, sistem operasi tidak mengetahui berapa banyak ruang disk
yang digunakan untuk suatu file. Kelemahan lain adalah Terjadi fragmentasi disk.
Fragmentasi disk dapat dihasilkan metode alokasi ini, ruang yang disiakan seharusnya dapat
digunakan.
Metode kedua adalah alokasi blok-blok file sebagai senarai berkait yang mencatat
blok-blok file dengan senarai berkait blok-blok didisk. Word pertama di blok data sebagai
pointer ke blok berikutnya, sisanya untuk menyimpan data. Skema ini disebut rantai blok
(block chaining) karena blok pertama merantai blok kedua, blok kedua merantai blok ketiga,
dan seterusnya. Blok sebelumnya merantai blok berikutnya. Direktori mencatat blok pertama
file.
Keunggulan metode ini adalah Setiap blok di disk dapat digunakan. Tak ada ruang
yang hilang karena fragmentasi eksternal. Isian/elemen direktori cukup menyimpan alamat
blok pertama file.
Keunggulan metode ini adalah pengaksesan acak lebih mudah. Meski masih harus
menelusuri rantai berkait untuk menemukan lokasi blok file, rantai blok seluruhnya di
memori sehingga dapat dilakukan secara cepat tanpa membuat pengaksesan ke disk. Direktori
cukup menyimpan bilangan bulat nomor blok awal. Blok awal ini digunakan untuk
menemukan seluruh blok, tak peduli jumlah blok file itu. Direktori menunjuk blok pertama
file dan FAT menunjukkan blok-blok file berikutnya.
Pemilihan algoritma untuk pencarian sebuah direktori merupakan salah satu penentu
tingkat efisiensi dan performance suatu sistem file. Salah satu algoritma itu adalah
implementasi direktori linier. Algoritma ini merupakan algoritma yang paling sederhana
dalam pembuatan program yang mengimplementasikan linier list dari nama-nama file
yang memiliki pointer ke blok-blok data. Namun, algoritma ini tidak efisien apabila
digunakan pada suatu direktori yang memiliki jumlah file yang sangat banyak karena
proses eksekusi file membutuhkan waktu yang lama. Misalnya, untuk membuat file, kita
harus memastikan bahwa dalam direktori tidak ada file yang mempunyai nama yang sama.
Kemudian, file yang baru tersebut ditambahkan pada akhir direktori tersebut. Untuk
menghapus sebuah file, kita mencari terlebih dahulu nama file yang hendak dihapus dalam
direktori, kemudian membebaskan space yang dialokasikan pada file tersebut. Apabila kita
menginginkan untuk menggunakan kembali entry file tersebut, ada beberapa alternatif
yang bisa kita gunakan, yaitu:
1. kita bisa menandai file tersebut misalnya melalui pemberian nama file yang khusus
pada file tersebut.
2. Kedua, kita bisa menempatkan file tersebut pada sebuah list of free directory entries.
3. alternatif yang ketiga adalah dengan menyalin entry terakhir dalam direktori ke suatu
freed location.
Salah satu kerugian yang ditimbulkan dalam penggunaan algoritma ini adalah
pencarian file dilakukan secara linier search. Oleh karena itu, banyak sistem operasi yang
mengimplementasikan sebuah software cache yang menyimpan informasi tentang direktori
yang paling sering digunakan, sehingga pengaksesan ke disk bisa dikurangi. File-file yang
terurut dapat mengurangi rata-rata waktu pencarian karena dilakukan secara binary search.
Namun, untuk menjaga agar file-file selalu dalam keadaan terurut, pembuatan maupun
penghapusan file akan lebih rumit. Struktur data tree seperti B-tree bisa digunakan untuk
mengatasi masalah ini.
Pada implementasi ini, linier list tetap digunakan untuk menyimpan direktori, hanya
saja ada tambahan berupa struktur data hash. Prosesnya yaitu hash table mengambil nilai
yang dihitung dari nama file dan mengembalikan sebuah pointer ke nama file yang ada di
linier list. Oleh karena itu, waktu pencarian file bisa dikurangi. Akan tetapi, ada suatu
keadaan yang menyebabkan terjadinya peristiwa collisions, yaitu suatu kondisi di mana
terdapat dua file yang memiliki nilai hash yang sama, sehingga menempati lokasi yang
sama. Solusi yang dipakai untuk mengatasi hal tersebut yaitu dengan menggunakan
chained-overflow hash table, yaitu setiap hash table mempunyai linked list dari nilai
individual dan crash dapat diatasi dengan menambah tempat pada linked list tersebut. Efek
samping dari penambahan chained-overflow tersebut adalah dapat memperlambat
pencarian.
Ada beberapa kelemahan dari implementasi direktori hash, yaitu ukurannya yang
tetap dan adanya ketergantungan fungsi hash dengan ukuran hash table. Sebagai contoh,
misalnya kita membuat sebuah linear-probing hash table yang memiliki 32 entry. Sebuah
fungsi hash dibutuhkan untuk mengubah nama file menjadi bilangan bulat dari 0 s.d. 31,
misalnya dengan menggunakan fungsi modulo 32. Jika kita ingin untuk menambahkan
sebuah file yang harus diletakkan pada lokasi yang ke-33, kita harus memperbesar ukuran
dari hash table tersebut, sehingga diperlukan sebuah fungsi hash baru untuk disesuaikan
dengan ukuran hash table tersebut. Oleh karena itu, file-file yang sebelumnya sudah
ditempatkan di suatu lokasi pada hash table yang lama harus dicari tempat yang
bersesuaian dengan menggunakan fungsi hash yang baru.
2.6 METODE ALOKASI
Beberapa sistem file yang baru (misalnya Veritas File System) menggunakan skema
alokasi berurutan yang dimodifikasi. File sistem Extent-based mengalokasikan blok pada
disk secara berkembang (extent). Extent adalah blok berurutan pada disk. Extent
dialokasikan untuk alokasi file. Sebuah file terdiri dari satu atau lebih extent.
Pada alokasi berindeks, memerlukan tabel indeks yang membawa pointer ke blok-blok
file yang lain. Akses dilakukan secara random. Merupakan akses dinamis tanpa
fragmentasi eksternal, tetapi mempunyai blok indeks yang berlebih. Pemetaan dari logika
ke fisik dalam file ukuran maksimum 256K word dan ukuran blok 512 word hanya
memerlukan 1 blok untuk tabel indeks.
Apabila pemetaan dari logika ke fisik dalam sebuah file dari ukuran tak hingga
(ukuran blok adalah 512 word) maka digunakan skema menghubungkan blok link dari
tabel indeks (ukuran tak terbatas). Untuk ukuran file maksimum 5123 digunakan skema
two-level indeks (Gambar 10). Pada skema two-level indeks terdapat tabel indeks luar
dan dalam. Indeks dipetakan ke tabel indeks luar kemudian dipetakan ke tabel indeks
dalam setelah itu mengakses blok file yang dimaksud. Sistem operasi UNIX
mengimplementasikan kombinasi alokasi berurutan dan alokasi berindeks seperti pada
Gambar 11.
Gambar 10. Skema two level indeks
Daftar ruang bebas biasanya diimplementasikan sebagai bit map atai bit vector
(vektor bit). Setiap blok direpresentasikan dengan 1 bit. Jika blok bebas, maka bit bernilai 1,
sebaliknya jika blok dialokasikan, bit bernilai 0. Sebagai contoh, misalnya disk dengan blok
2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26 dan 27 bebas dan sisanya dialokasikan. Maka bit
map dari ruang bebas adalah :
001111001111110001100000011100000
Perhitungan nomor blok yang bebas adalah sebagai berikut :
(jumlah bit per word) * (jumlah nilai-0 word) + offset dari bit 1 pertama Pemetaan bit
biasanya membutuhkan ruang tambahan, misalnya ukuran blok =
212 byte, ukuran disk = 230 byte (1 gigabyte) maka
n = 230/212 = 218 bit (atau 32K byte)
Dengan menggunakan vector bit mudah untuk mendapatkan file yang berurutan.
Pengembangan dari vector bit adalah dengan menggunakan linked list (free list) seperti
Gambar 12. Akan tetapi model ini tidak mendapatkan ruang berurutan dengan mudah
meskipun tidak memakan tempat. Modifikasi berikutnya melakukan pengelompokan blok
yang bebas agar lebih mudah untuk mendapakan ruang yang berurutan.
2.8 EFISIENSI DAN PERFOMANSI
Efisiensi penggunaan ruang disk tergantung pada alokasi disk dan algoritma directori
serta tipe data disimpan pada entry direktory dari file. Untuk meningkatkan performansi
penggunaan ruang disk digunakan disk cache yang digunakan pada bagian terpisah dari main
memory untuk penggunaan blok yang sering. Selain itu juga menggunakan teknik untuk
optimasi akses berurutan yang disebut free-behind dan read-ahead. teknik untuk optimasi
akses berurutan. Untuk meningkatkan performansi PC juga dapat menggunakan bagian
tertentu dari memory sebagai virtual disk atau RAM disk.
Gambar 12 : Menghubungkan daftar ruang bebas pada disk
2.9 RECOVERY
Untuk memperbaiki sistem file dilakukan dengan memeriksa konsistensi dengan cara
membandingkan data pada struktur direktori dengan blok data pada disk dan mencoba
memperbaiki inkonsistensi. Selain itu juga dapat menggunakan program sistem untuk back
up data dari disk ke penyimpan lain (floppy disk, magnetic tape). Perbaikan akan Recover
menghilangkan file atau disk dengan restoring data dari backup.
NFS didesain untuk operasi pada lingkungan heterogen dari mesin, SO dan arsitektur
network yang berbeda; spesifikasi NFS tidak tergantung dari media tersebut. Ketidak
tergantungan dilakukan melalui penggunaan RPC pada bagian tertinggi dari protokol
External Data Representation (XDR) yang digunakan antara 2 antarmuka independent.
Spesifikasi NFS berbeda antara layanan tersedia dengan mekanisme mount dan layanan akses
file remote actual.
Misalnya terdapat tiga file sistem yang independent seperti Gambar 13. Kemudian
dilakukan mount dengan NFS maka file sistem hasil seperti Gambar 14.
Bob DuCharme, 2001, The Operating System Handbook or, Fake Your Way Through
Minis and Mainframes Singapore: McGraw-Hill Book Co
th
Deitel, Harvey M, 2004 operating systems 3 Edition, Massachusetts: Addison-Wesley
Publshing Company
Gollmann, Dieter,1999 Computer Security Jhon Willey & Son Inc, Canada
Grosshans,D. 1986, File system: design and implementation, Englewwod Cliffs, New
Jersey : Prentice-Hall Inc.
Jean Bacon, Tim Harris, 2003 Operating Systems: Concurrent and Distributed Software
Design Massachhussets. Addison Wesley