(1)
Sistem Operasi
Sistem Operasi
1
10
0
1
10
0
“File
“File S
System
ystem dan Security
dan Security”
”
Antonius
Antonius Rachmat
Rachmat C,
C, S.Kom
S.Kom,
,
M.Cs
(2)Konsep File
Konsep File
• File adalah kumpulan informasi yang
berhubungan dan tersimpan dalam
secondary storage
• Tipe:
– Data (character, numeric, binary)
– Data (character, numeric, binary)
– Program - binary
– Direktori – logika
• Di Linux dalam bentuk file: /home/anton (d)
– Device – logika
• Di Linux dalam bentuk file: /dev/sda1
(3)File
File
• Simple record structure
– Baris (lines)
• Fixed length • Variable length• Complex Structures
• Complex Structures
– Formatted document
• RTF, HTML• Yang mengatur:
– Operating system
– System Program
(4)Struktur File
Struktur File
• Sistem operasi membutuhkan struktur file
tertentu untuk menjalankan/ mengakses suatu
file.
• Semua sistem operasi diharuskan mampu
mengenal sedikitnya satu jenis struktur file.
• Jika sistem operasi mengenal semakin banyak
• Jika sistem operasi mengenal semakin banyak
struktur file, maka semakin luas aplikasi yang
dapat dijalankan namun ukuran kernel sistem
operasi semakin membengkak.
• Sebaliknya, jika semakin sedikit struktur file,
maka sistem operasi hanya dapat menjalankan
aplikasi dalam jumlah yang sedikit pula.
(5)Atribut File
Atribut File
• Name – disimpan dalam human readable name
• Identifier – unique tag (number) dalam file
system
• Type – dibutuhkan oleh sistem (ex: .txt)
• Location – pointer to file location di harddisk
• Size – current file size
• Size – current file size
• Protection – controls siapa yang reading,
writing, executing
• Time, date, and user identification – data
untuk protection, security, and usage monitoring
• Information about files are kept in the directory
(6)Windows & ID3 Properties
Windows & ID3 Properties
(7)Operasi File
Operasi File
• Create: menciptakan file, size=0
• Write: menulis file dari posisi tertentu
• Read: baca file dari posisi tertentu
• Delete: hapus file
• Delete: hapus file
• Truncate: menghapus isi,
mempertahankan atribut, kec file length,
size=0, space released
• Seek : mencari suatu data di posisi
tertentu dari posisi tertentu
(8)Open Files
Open Files
• Ketika terjadi open file, data yang harus
dimaintenance:
– File pointer: pointer ke lokasi read/write
terakhir, per process yang membuka file
– File-open count: counter dari berapa kali
– File-open count: counter dari berapa kali
sebuah file dibuka – untuk membuang data
dari tabel open-file ketika proses terakhir
menutup nya.
• Misal: 1 jika dibuka, 0 jika ditutup
– Lokasi disk tempat penyimpanan file: berisi
cache dari informasi akses data.
(9)Open File Locking
Open File Locking
• Dilakukan oleh OS dan program
• Terjadi ketika ada akses ke file
• Ada 2 kemungkinan:
– Mandatory – access is denied ketika
– Mandatory – access is denied ketika
ada perintah/request
– Advisory – processes dapat
menemukan status of locks dan
memutuskan yang dilakukan nya
sendiri.
(10)File Types
File Types –
– Name,
Name,
Extension
(11)File extensions in Win 7
File extensions in Win 7
(12)Access Methods
Access Methods
• Sequential Access read next write next resetno read after last write (rewrite)
• Direct Access read posisi n read posisi n write posisi n set position to n read next write next rewrite n
(13)Simulation of Sequential Access on
Simulation of Sequential Access on
Direct
(14)Direct Access
Direct Access & Index
& Index
sequential
sequential
• Direct access: sangat berguna untuk
pengaksesan langsung informasi dalam
jumlah besar.
– Contoh : database
• Index sequential: file juga dapat dilihat
• Index sequential: file juga dapat dilihat
sebagai sederetan blok yang berindeks
– Untuk mencari suatu bagian dari file,
pertama-tama cari indeksnya, kemudian dengan
pointer
tersebut kita mengakses file secara
langsung, lalu mencari bagian dari file yang
diinginkan.
(15)Example of Index and Relative
Example of Index and Relative
Files
Files
(16)Directory Structure
Directory Structure
• Kumpulan node yang berisi informasi tentang semua file
Directory
F 1 F 2 F 3 F 4
F n Files
(17)Direktori
Direktori
• Operasi terhadap direktori:
– Search for a file
– Create a file
– Delete a file
– List a directory
– Rename a file
– Rename a file
– Traverse the file system
• Struktur Direktori
– Single-Level Directory
– Two-Level Directory
– Tree-Structured Directory
– Acyclic-Graph Directory
– General-Graph Directory
(18)Single Level Directory
Single Level Directory
Single Level Directory:
• Semua file terdapat dalam
direktori yang sama
• Tiap file memiliki nama
Two Level Directory:
• Membuat direktori yang terpisah untuk tiap user
• Terdapat User File Directory
(UFD) dan Master File Directory (MFD)
• Masalah: bila beberapa user ingin
• Tiap file memiliki nama
yang unik
• Masalah: bila beberapa user ingin mengerjakan tugas secara bersama dan ingin mengakses file user lain
(19)Single
Single--Level Directory
Level Directory
• A single directory for all users
- Naming problem - Grouping problem
(20)Two
Two--Level Directory
Level Directory
• Separate directory for each user
Path name
Can have the same file name for different user Efficient searching
(21)Tree structured directory
Tree structured directory
• Tiap direktori dapatmengandung file dan subdirektori
• Path (absolut path) adalah urutan direktori yang berasal dari MFD (master file directory) • Working dir. (relative path)
adalah path yang berasal dari • Working dir. (relative path)
adalah path yang berasal dari current directory
• Current directory adalah direktori yang baru-baru ini digunakan
(22)(23)Tree
Tree--Structured Directories
Structured Directories
(Cont)
(Cont)
• Menciptakan sebuah file bisa dilakukan pada current directory
• Delete a file
rm <file-name>
• Creating a new subdirectory is done in current directory
mkdir <dir-name> mkdir <dir-name>
Example: if in current directory /mail mkdir count
prog copy prt exp count
(24)Acyclic
Acyclic--Graph Directories
Graph Directories
• Have shared subdirectories and files
– Satu file dapat memiliki banyak absolut path yang
berbeda
General Graph Directory
General Graph Directory
• Berbentuk link.
(26)File System Mounting
File System Mounting
• Sebuah sistem berkas sebelum dapat
digunakan harus di-mount terlebih
dahulu.
• Mounting: proses paling awal sebelum
membuka sebuah direktori, yaitu dengan
membuka sebuah direktori, yaitu dengan
membuat sebuah direktori baru yang
menjadi sub-tree dari tempat file system
tsb diletakkan
• Mount point: direktori kosong tempat file
system yang akan di-mount diletakkan.
(27)(a)
(a)Existing.
Existing.
(b) Unmounted Partition
(b) Unmounted Partition
(28)(29)Partisi dan Mounting
Partisi dan Mounting
• Root partition di-mount pada saat boot time
• Partisi yang lain di-mount secara otomatis
atau manual (tergantung sistem operasi)
– Otomatis: diletakkan di /etc/fstab
• Windows
• Windows
– setiap partisi yang di-mount ditandai dengan huruf
dan colon dan back slash (:\)
• UNIX
– file system dapat di-mount di semua direktori
– mount /dev/sda /mnt/flashdisk
(30)File Sharing
File Sharing
• File sharing mendukung sebuah sistem operasi
yang user-oriented.
• Berhubungan dengan permission.
• Multiple user bisa mengakses file yang sama.
• On distributed systems, files may be shared
• On distributed systems, files may be shared
across a network
• Pada Multiple users:
– Owner ID: user yang bisa mengganti atribut, membuka akses, dan mengontrol sebuah file atau direktori.
– Group ID: sekelompok user yang men-share akses sebuah file.
– Universe: umum
(31)Protection
Protection
• File owner/creator harus dikontrol:
– Apa yang dilakukan,
– Oleh siapa
• Tujuan proteksi:
– Menjaga aman dari kerusakan fisik (reliability).
– Menjaga dari akses yang tidak diijinkan
– Menjaga dari akses yang tidak diijinkan
(protection).
• Types of access:
– Read
– Write
– Execute
– Append
– Delete
– List
(32)Protection
Protection
• Menggunakan ACL
–rw-rwxr-- john staff 100 Oct 20 22:12 journal
• Klasifikasi users dalam mengakses
suatu file:
– Owner: User yang menciptakan file tsb.
– Group: Sekelompok users yang saling
berbagi file dan tergabung dalam
sebuah kelompok kerja.
– Universe: Semua users yang saling
terhubung dalam sistem.
(33)Access Lists and Groups
Access Lists and Groups
• Mode of access: r=read, w=write, x=execute (masing2 3bit) • Three classes of users
RWX a) owner access 7 ⇒ 1 1 1 RWX b) group access 6 ⇒ 1 1 0 RWX c) public access 1 ⇒ 0 0 1 c) public access 1 ⇒ 0 0 1
• Ask manager to create a group (unique name), say G, and add some users to the group.
• For a particular file (say game) or subdirectory, define an appropriate access.
owner group public
chmod 761 game
Attach a group to a file
(34)Windows XP Access
Windows XP Access--control List
control List
Management
(35)A Sample UNIX Directory
A Sample UNIX Directory
Listing
Listing
(36)(37)(38)Organisasi File System
Organisasi File System
(39)Hal yg berhubungan dengan
Hal yg berhubungan dengan
File System
File System
• I/O control (driver device dan interrupt handler)
– Device driver adalah perantara komunikasi antarasistem operasi dengan perangkat keras
• Basic file system
– Mengeluarkan perintah generic ke device driver untuk baca dan tulis pada suatu block dalam disk
• File-organization module
• File-organization module
– Informasi tentang logical address dan physical address dari file tersebut, mengatur juga sisa disk dengan
melacak alamat yang belum dialokasikan dan
menyediakan alamat tersebut saat user ingin menulis file ke dalam disk
• Logical file system
– tingkat ini berisi informasi tentang simbol nama file, struktur dari direktori, proteksi dan sekuriti dari file tersebut
(40)Implementasi File System
Implementasi File System
Struktur On-disk
• Boot control block
– informasi sistem file pada sistem operasi
• Partition block control
• Partition block control
– spesifikasi partisi yang dimiliki
• Struktur direktori
– mengatur file-file dalam direktori
• FCB (File Control Block)
(41)Implementasi File System
Implementasi File System
Struktur In-Memory:
• Table partition
– Informasi semua partisi yang di-mount
• Struktur direktori (LRU-stack)
– informasi direktori yang paling sering diakses
– informasi direktori yang paling sering diakses
• System wide open file table
– Copy-an dari FCB
• Per-process open file table
– Daftar pointer yang menunjuk access point
dalam system wide open file table
(42)Implementasi Direktori
Implementasi Direktori
• Asumsi direktori di Linux = Fie
• Linier List: metoda paling sederhana: nama file
dihubungkan dengan pointer ke data block
• Proses: mencari (tidak ada nama file yang
sama), tambah file baru pada akhir direktori,
hapus (mencari file dalam direktori dan
hapus (mencari file dalam direktori dan
melepaskan tempat yang dialokasikan)
• Kelemahan: linear search untuk mencari
sebuah file, sehingga implementasi yang
lambat pada cara aksesnya
(43)Hash Table
Hash Table
• Linear list menyimpan direktori, sedangkan
struktur data hash juga digunakan untuk
penyimpanan
• Proses: Hash table mengambil nilai yang
dihitung dengan function dari nama file dan
mengembalikan sebuah pointer ke nama file
mengembalikan sebuah pointer ke nama file
yang ada di linear list
• Kesulitan: ukuran tetap dan ketergantungan
dari fungsi hash dengan ukuran hash table
• Solusi: chained-overflow linked list
– setiap hash table mempunyai linked list dari nilai
individual dan kita dapat mengatasi collision
(44)Contoh implementasi Linux
Contoh implementasi Linux
• / : direktori root
• /bin : perintah biner yang esensial
• /boot : file statis dari boot loader
• /dev : device files
• /etc : konfigurasi sistem host-specific
• /lib : shared libraries essential dan modul kernel
• /lib : shared libraries essential dan modul kernel
• /mnt : mount point untuk me-mount suatu file system
sementara
• /opt : tambahan paket software application
• /sbin : sistem binary esensial
• /tmp : tempat file-file sementara
• /usr : berisi file untuk user tertentu
• /var : berisi variabel data
(45)(46)Alokasi Blok File System
Alokasi Blok File System
• Untuk mengalokasikan file agar
dapat diakses dengan cepat dan
disk dapat dimanfaatkan secara
efektif
efektif
• Metode yang sering digunakan ialah:
– Contiguous allocation
– Linked allocation
(47)Contiguous allocation
Contiguous allocation
• Sebuah file didefinisikan oleh alamat
disk (mendefinisikan urutan linier
dari disk) dan panjangnya (dalam
satuan blok) dari blok pertama
satuan blok) dari blok pertama
• Contiguous allocation mendukung
pengaksesan secara sekuensial dan
juga pengaksesan secara langsung
(48)Contiguous allocation
Contiguous allocation
MASALAH:
- Mencari ruang untuk file baru - External fragmentation
- Menentukan berapa banyak ruang yang dibutuhkan untuk suatu file (harus dihitung)
(49)Linked Allocation
Linked Allocation
• Direktori mengandung sebuah pointer
untuk blok pertama dan blok terakhir
dari sebuah file
• Setiap blok mengandung sebuah
pointer untuk ke blok selanjutnya
pointer untuk ke blok selanjutnya
– tidak dapat di buat oleh user
• Efektif saat file diakses secara
sequential
• Kelemahan: jika linked semakin
panjang dan terpisah-pisah pencarian
lambat
(50)Linked Allocation
Linked Allocation
MASALAH:
• Tidak efisien saat file diakses secara langsung • Lambat • Pointer membutuhkan • Pointer membutuhkan ruang • File berikutnya bergantung dengan file sebelumnya (dalam pointer)
(51)Indexed Allocation
Indexed Allocation
• Pointer digabungkan didalam suatu
blok yang dinamakan blok indeks
• Setiap file memiliki blok indeks
masing-masing
MASALAH:
MASALAH:
• Jika blok indeks terlalu kecil, maka
tidak akan bisa memuat pointer yang
cukup untuk sebuah file yang besar
• Blok indeks membutuhkan tempat
• Urutan pointer berpengaruh
(52)Indexed Allocation
Indexed Allocation
(53)Implementasi indexed
Implementasi indexed
allocation
allocation
• Linked scheme:
– Mekanisme ini dapat menghubungkan beberapa blok indeks dengan pointer
– Jika pointer tidak muat dalam satu blok indeks, maka pointer terakhir dari blok indeks ini menunjukkan blok indeks yang memuat pointer selanjutnya
– Sifatnya langsung – Sifatnya langsung
• Multilevel index scheme:
– Blok indeks pada level pertama akan menunjukkan blok-blok indeks pada level kedua yang akan menunjuk ke alamat data
– Ini dapat diteruskan ke level ketiga atau level keempat tergantung dari jumlah data yang dibutuhkan
(54)