(1) Sistem OperasiSistem Operasi11001100“File“File SSystemystem dan Securitydan Security””AntoniusAntonius RachmatRachmat C,C, S.KomS.Kom,,M.Cs Show
Konsep FileKonsep File• File adalah kumpulan informasi yangberhubungan dan tersimpan dalamsecondary 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)FileFile• 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 FileStruktur File• Sistem operasi membutuhkan struktur filetertentu untuk menjalankan/ mengakses suatufile.• Semua sistem operasi diharuskan mampumengenal sedikitnya satu jenis struktur file.• Jika sistem operasi mengenal semakin banyak• Jika sistem operasi mengenal semakin banyakstruktur file, maka semakin luas aplikasi yangdapat dijalankan namun ukuran kernel sistemoperasi semakin membengkak.• Sebaliknya, jika semakin sedikit struktur file,maka sistem operasi hanya dapat menjalankanaplikasi dalam jumlah yang sedikit pula.(5)Atribut FileAtribut File• Name – disimpan dalam human readable name• Identifier – unique tag (number) dalam filesystem• 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 – datauntuk protection, security, and usage monitoring• Information about files are kept in the directory(6)Windows & ID3 PropertiesWindows & ID3 Properties(7)Operasi FileOperasi 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 posisitertentu dari posisi tertentu(8)Open FilesOpen Files• Ketika terjadi open file, data yang harusdimaintenance:– File pointer: pointer ke lokasi read/writeterakhir, per process yang membuka file– File-open count: counter dari berapa kali– File-open count: counter dari berapa kalisebuah file dibuka – untuk membuang datadari tabel open-file ketika proses terakhirmenutup nya.• Misal: 1 jika dibuka, 0 jika ditutup – Lokasi disk tempat penyimpanan file: berisicache dari informasi akses data.(9)Open File LockingOpen 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 ketikaada perintah/request– Advisory – processes dapatmenemukan status of locks danmemutuskan yang dilakukan nyasendiri.(10)File TypesFile Types –– Name,Name,Extension(11)File extensions in Win 7File extensions in Win 7(12)Access MethodsAccess 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 onSimulation of Sequential Access onDirect(14)Direct AccessDirect Access & Index& Indexsequentialsequential• Direct access: sangat berguna untukpengaksesan langsung informasi dalamjumlah besar.– Contoh : database• Index sequential: file juga dapat dilihat• Index sequential: file juga dapat dilihatsebagai sederetan blok yang berindeks– Untuk mencari suatu bagian dari file,pertama-tama cari indeksnya, kemudian denganpointertersebut kita mengakses file secaralangsung, lalu mencari bagian dari file yangdiinginkan.(15)Example of Index and RelativeExample of Index and RelativeFilesFiles(16)Directory StructureDirectory Structure• Kumpulan node yang berisi informasi tentang semua file Directory F 1 F 2 F 3 F 4 F n Files (17)DirektoriDirektori• 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 DirectorySingle Level DirectorySingle Level Directory:• Semua file terdapat dalamdirektori yang sama• Tiap file memiliki namaTwo 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 namayang unik• Masalah: bila beberapa user ingin mengerjakan tugas secara bersama dan ingin mengakses file user lain (19)SingleSingle--Level DirectoryLevel Directory• A single directory for all users- Naming problem - Grouping problem (20)TwoTwo--Level DirectoryLevel Directory• Separate directory for each userPath name Can have the same file name for different user Efficient searching (21)Tree structured directoryTree 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 TreeTree--Structured DirectoriesStructured 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)AcyclicAcyclic--Graph DirectoriesGraph Directories• Have shared subdirectories and files– Satu file dapat memiliki banyak absolut path yang berbeda (25)General Graph DirectoryGeneral Graph Directory• Berbentuk link. (26)File System MountingFile System Mounting• Sebuah sistem berkas sebelum dapatdigunakan harus di-mount terlebihdahulu.• Mounting: proses paling awal sebelummembuka sebuah direktori, yaitu denganmembuka sebuah direktori, yaitu denganmembuat sebuah direktori baru yangmenjadi sub-tree dari tempat file systemtsb diletakkan• Mount point: direktori kosong tempat filesystem yang akan di-mount diletakkan.(27)(a)(a)Existing.Existing.(b) Unmounted Partition(b) Unmounted Partition(28)(29)Partisi dan MountingPartisi dan Mounting• Root partition di-mount pada saat boot time• Partisi yang lain di-mount secara otomatisatau manual (tergantung sistem operasi)– Otomatis: diletakkan di /etc/fstab• Windows• Windows– setiap partisi yang di-mount ditandai dengan hurufdan colon dan back slash (:\)• UNIX– file system dapat di-mount di semua direktori– mount /dev/sda /mnt/flashdisk(30)File SharingFile Sharing• File sharing mendukung sebuah sistem operasiyang 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 sharedacross 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)ProtectionProtection• 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– ListProtectionProtection• Menggunakan ACL–rw-rwxr-- john staff 100 Oct 20 22:12 journal • Klasifikasi users dalam mengaksessuatu file:– Owner: User yang menciptakan file tsb.– Group: Sekelompok users yang salingberbagi file dan tergabung dalamsebuah kelompok kerja.– Universe: Semua users yang salingterhubung dalam sistem.(33)Access Lists and GroupsAccess 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 AccessWindows XP Access--control Listcontrol ListManagement(35)A Sample UNIX DirectoryA Sample UNIX DirectoryListingListing(36)(37)(38)Organisasi File SystemOrganisasi File System(39)Hal yg berhubungan denganHal yg berhubungan denganFile SystemFile 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 SystemImplementasi File SystemStruktur 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 SystemImplementasi File SystemStruktur 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 pointdalam system wide open file tableImplementasi DirektoriImplementasi Direktori• Asumsi direktori di Linux = Fie• Linier List: metoda paling sederhana: nama filedihubungkan dengan pointer ke data block• Proses: mencari (tidak ada nama file yangsama), tambah file baru pada akhir direktori,hapus (mencari file dalam direktori danhapus (mencari file dalam direktori danmelepaskan tempat yang dialokasikan)• Kelemahan: linear search untuk mencarisebuah file, sehingga implementasi yanglambat pada cara aksesnya(43)Hash TableHash Table• Linear list menyimpan direktori, sedangkanstruktur data hash juga digunakan untukpenyimpanan• Proses: Hash table mengambil nilai yangdihitung dengan function dari nama file danmengembalikan sebuah pointer ke nama filemengembalikan sebuah pointer ke nama fileyang ada di linear list• Kesulitan: ukuran tetap dan ketergantungandari fungsi hash dengan ukuran hash table• Solusi: chained-overflow linked list– setiap hash table mempunyai linked list dari nilaiindividual dan kita dapat mengatasi collision(44)Contoh implementasi LinuxContoh 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 systemsementara• /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 SystemAlokasi Blok File System• Untuk mengalokasikan file agardapat diakses dengan cepat dandisk dapat dimanfaatkan secaraefektifefektif• Metode yang sering digunakan ialah:– Contiguous allocation– Linked allocation(47)Contiguous allocationContiguous allocation• Sebuah file didefinisikan oleh alamatdisk (mendefinisikan urutan linierdari disk) dan panjangnya (dalamsatuan blok) dari blok pertamasatuan blok) dari blok pertama• Contiguous allocation mendukungpengaksesan secara sekuensial danjuga pengaksesan secara langsung(48)Contiguous allocationContiguous allocationMASALAH: - Mencari ruang untuk file baru - External fragmentation - Menentukan berapa banyak ruang yang dibutuhkan untuk suatu file (harus dihitung) (49)Linked AllocationLinked Allocation• Direktori mengandung sebuah pointeruntuk blok pertama dan blok terakhirdari sebuah file• Setiap blok mengandung sebuahpointer untuk ke blok selanjutnyapointer untuk ke blok selanjutnya– tidak dapat di buat oleh user• Efektif saat file diakses secarasequential• Kelemahan: jika linked semakinpanjang dan terpisah-pisah pencarianlambat(50)Linked AllocationLinked AllocationMASALAH: • Tidak efisien saat file diakses secara langsung • Lambat • Pointer membutuhkan • Pointer membutuhkan ruang • File berikutnya bergantung dengan file sebelumnya (dalam pointer) (51)Indexed AllocationIndexed Allocation• Pointer digabungkan didalam suatublok yang dinamakan blok indeks• Setiap file memiliki blok indeksmasing-masingMASALAH:MASALAH:• Jika blok indeks terlalu kecil, makatidak akan bisa memuat pointer yangcukup untuk sebuah file yang besar• Blok indeks membutuhkan tempat• Urutan pointer berpengaruh(52)Indexed AllocationIndexed Allocation(53)Implementasi indexedImplementasi indexedallocationallocation• 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)Implementasi indexedImplementasi indexedallocationallocation(55)Kinerja dari MetodeKinerja dari MetodeAlokasiAlokasi• Countiguous allocation:– Efisien untuk file kecil– Mendukung akses file secara langsung• Linked allocation• Linked allocation– Mendukung akses file secara sequential• Indexed allocation– Tergantung dari struktur index, ukuranfile, dan posisi dari blok yang(56)NEXTNEXT• Sistem Input Output |