Dosya Sistemleri

advertisement
Dosya Sistemleri
Akış
• Dosya sistemleri nelerdir?
• Dosyalar
– İsimlendirme, türler, yapılar, erişim, nitelikler, işlemler.
• Dizinler
– Tek, iki ve hiyerarşik seviyeli sistemler
– İşlemler
• Yol (Path) İsimleri
• Dosya Sistemleri
– DOS dosya sistemi,FAT32,NTFS,ext
Neden Dosya Sistemlerine Gereksinim
Vardır?
• Veri, bir process kendisini kullanıp işi bittikten
sonra da varlığını devam ettirmek zorundadır.
• Bu sistem sayesinde oldukça büyük miktarda
verileri depolamak mümkündür.
• Yine bu sayede, çoklu işlemler verilere eş
zamanlı olarak erişebilmektedir.
• Çözüm, bu verileri disk veya diğer medyalara
üniteler halinde saklamaktır.
Dosyalar
• Dosya içerisinde saklanan verilerin kalıcı
olması gerekmektedir.
• Dosyalar OS tarafından yönetilmektedir.
• İşletim sisteminin dosyalarla ilgilenen kısmı
“Dosya Yöneticisi (File Manager)” olarak
bilinmektedir.
İsimlendirme (Naming)
• İsimlendirme ile ilgili kurallar kullanılan işletim
sistemine bağlıdır.
• Yaygın olarak kullanılan dosya isimlendirmeleri
– 1-8 karakter
– Dijitler ve belirlenmiş semboller
– Modern işletim sistemleri 255 karaktere kadar
desteklemektedir.
• Bazı dosya sistemleri karakter duyarlıdır.
– DOS, Windows (Karakter duyarsız)
– UNIX, Linux (Karakter duyarlı)
• Birçok işletim sistemi iki parçalı dosya
sistemini destekler.
– Parçalar nokta(.) ile birbirlerinden ayrılırlar.
– Örn: <dosya ismi>.<uzantı>
– deneme.txt, ornek.pdf, MyApplication.cs
• Uzantılar dosya hakkında bir takım bilgiler
içerir.
• Bazı işletim sistemleri için ise uzantı önemli
değildir.
– UNIX ve Linux dosya uzantılarını dikkate almazlar.
– Fakat bazı uygulamalar uzantılara bağlı olarak
çalışabilir.
Dosya Türleri
• 2 temel tür söz konusudur.
– Düzeli dosyalar (Regular Files): Kullanıcı verilerini
saklarlar. Bu tip dosyalar ASCII veya Binary olabilir.
– Dizinler (Directories): Dizinler, dosya sisteminin
yapısını yönetmek için kullanılan sistem
dosyalarıdır.
• Unix ortamında ise:
– Karakter dosyaları (Character Files) : I/O
kaynakları ile ilişkilidir, seri I/O cihazlarını
modellemek için kullanılır.
• /dev/tty,
/dev/lp, /dev/net
– Blok dosyaları(Block Files) : Diskleri modellemek
için kullanılır.
• /dev/hd1
• /dev/hd2
Yapı (File Structure)
Dosya Erişimi (File Access)
Daha önce de bahsedildiği üzere 2 grupta
toplanabilir:
• Sıralı Erişim (Sequential Access)
Örn: Basit text dosyaları
• Rastgele Erişim (Random Access)
Örn: Veritabanı dosyaları, film dosyları
Dosya Nitelikleri (File Attributes)
• Dosya, isim ve uzantı haricinde de bazı karakteristikler
içerebilir.
• Yaygın olan bazı nitelikler:
–
–
–
–
–
–
–
–
–
Dosya sahini (Owner)
Dosyayı oluşturan (Creator)
Koruma (Protection)
Sadece okunabilirlik(Read only flag)
Gizlilik (Hidden flag)
Arşiv (Archive flag)
En son erişim tarihi (Last Modified Date)
…….
…….
Dosya İşlemleri (File Operations)
•
•
•
•
•
•
•
•
•
•
Oluşturma (Create)
Silme (Delete)
Açma (Open)
Okuma (Read)
Yazma (Write)
Ekleme (Append)
Kapama(Close)
Arama (Seek)
Yeniden Adlandırma (Rename)
….
Directoryler(Directories)
• Dosyaları izlemek ve organize etmek için
kullanılır.
• Bir çok işletim sistemi directoryleri dosya gibi
ele alır.
– DOS, UNIX, Linux directory olarak isimlendirir.
– Windows ise dizin (Folder) olarak isimlendirir.
Tek Seviyeli Directory Yapısı
• Directory sisteminin en basit biçimidir. Tek bir
directory tüm dosyları içerir.
• Bu tekli directory “root” (kök dizin) olarak
isimlendirilir.
Çok kullanıcılı bir sistemde aynı isimde
dosyaların olması mümkün değildir.
İki Seviyeli Directory Yapısı
Çakışmayı önlemek için her bir kullanıcı için
farklı directoryler tahsis edilir.
Hiyerarşik Directory Yapısı
• Kullanıcılar kendi dosyalarını yönetmek
istediklerinde iki seviyeli directory yapısı
yeterli olmayacaktır.
• Neredeyse tüm işletim sistemleri çoklu
directory seviyelerini desteklemektedir.
• Fakat, CD-ROM dosya sistemi, bu konuda
hiyerarşik olarak belirli bir sınıra sahiptir.
Directory İşlemleri
(Directory Operations)
•
•
•
•
•
•
•
Oluşturma (Create)
Silme (Delete)
Directory Açma (Opendir)
Directory Okuma(Readdir)
Directory Kapama (Closedir)
Yeniden Adlandırma (Rename)
Bağlantı(Link)
Yol İsimlendirmesi (Path Naming)
• Dosyalar directory ağacının içinde olduğunda
dosyanın konumunu belirtmek için bir
isimlendirme şemasının kullanılması gerekir.
• Mutlak yol isimleri (absolute path names)
– /Users/John/presentation.ppt
• Göreceli yol isimleri(relative path names)
– Üzerinde çalışılan dizine göre göreceli yol isimleri
verilebilir.
• John/presentation.ppt
• Üzerinde çalışılan directoryden bağımsız
olarak mutlak yol isimleri her zaman sonuç
verecektir.
• Her bir directoryde 2 özel yapı bulunmaktadır.
– .(nokta) : Şu anda üzerinde çalışılan directorye
işaret etmektedir.
– ..(iki nokta):Bir üst seviyedeki directorye (parent
directory) işaret etmektedir.
• ./John/presentation.ppt
Dosya Sitemi Düzeni(Layout)
Dosyalama
• Bir dosyanın bu yapı üzerinde nerede
bulunduğunun bilinmesi gerekir.
• Dosyalar bloklar halinde depolanırlar.
• Dosyaların bulundukları yerin izini sürmek için
pek çok yaklaşım kullanılmaktadır.
– Yayılan Dağılım (Contagious Allocation)
– Bağlı liste Dağılımı (Link List Allocation)
– Bellekteki bir tabloyu kullanan bağlı liste dağılımı
– I-nodes
Blok Boyutu (Block Size)
• Verileri kolay bir şekilde adresleyebilmek,
yazıp/okuyabilmek için sabit uzunluktaki
bloklar tercih edilir. (fixed sized blocks)
• Tek bir blok tek bir sektör boyutunda
olabileceği gibi birden sektör boyutunda da
olabilir.
• Ne çok küçük ne de çok büyük boyutlu
olmalıdırlar.
• İdeal olarak 4K güzel bir seçim olabilir.
Block Size
Büyük Blok Boyutu  Yüksek Veri Hızı
Büyük Blok Boyutu  Düşük Kullanım Alanı
Küçük Blok Boyutu Düşük Veri Hızı
Küçük Blok Boyutu  Yüksek Kullanım Alanı
Yayılmacı Tahsis
(Contigous Allocation)
• En basit tahsis yöntemidir.
• Bir dosya diğerinden sonra saklanır.
• Avantajları:
– Uygulamak kolaydır.
– Okuma işlemi hızlı bir şekilde gerçekleşir.
• Dezavantajı:
– Disk parçalaması(Disk fragmentation)
• Ticari işletim sistemlerinde kullanılmaz. Gömülü
işletim sistemleri ve CD-ROM larda tercih edilir.
Bağlı Liste Tahsisi
(Link List Allocation)
• Avantajları:
– Her disk bloğu kullanılabilir.
– Parçalamadan dolayı herhangi bir yer kaybı söz
konusu değildir.
• Dezavantajları:
– Rastgele erişim oldukça yavaştır.
– Eğer link bilgisi kaybolursa dosyanın geri kalanına
konumlanamaz.
Dosya Yerleşim Tablosu (FAT)
• Bağlı liste yerleşim bilgileri belleğe yerleştirilir.
• Avantajları:
– Rastgele olarak hızlı bir şekilde erişilir.
– Disk üzerindeki bloklardan bir tanesi kaybolsa dahi
dosyanın geri kalanına konumlanılabilir.
– Tekli disk bloğunu tamamen kullanır.
• Dezavantajı
– FAT bellekte biraz yer kaplar.
I-Nodes
• Index düğümleri her bir dosya
ilişkilendirilir.(Dosyalara referans ederler)
ile
• Index düğümü i node olarak adlandırılır.
• Verilen bir i-node ile dosyanın bütün bloklarını
bulmak mümkündür.
• UNIX, işletim sisteminde her şey bir dosya
olarak
tutulmaktadır.
Dosyaların
isimlendirmesi sadece kullanıcılar için anlamlı
iken, UNIX için bir anlam ifade etmemektedir.
• Dosya isimleri yerine, oluşturulan her dosyaya
o dosyaya ait olmak üzere bir numara verilir.
Bu numara da inode’dur.
• Dosya üzerindeki tüm işlemler inode numarası
kullanılarak yapılır.
• Super block için de bir blok inode tablosu için
ayrılmış durumdadır.
• Bir i-node’da
– Tip ve haklar
– Dosyanın sahibi
– Boyut bilgisi
– Son erişim zamanı
– Son değişiklik zamanı
– Sektör miktarı gibi bilgiler bulunur.
• İnode’ların boyutu sabittir.
• Avantajı:
– Bir dosya açıldığında sadece karşılık gelen i-node
belleğe getirilir.
Uygulamada Directory’ler
• Directory’nin temel amacı dosya ismi ile bu
dosyanın
verisine
olan
haritalamayı
sağlamaktır.
• Doğru disk bloklarını bulmak için
– Yayılmacı tahsis (Contiguous Allocation)
– Bağlı liste tahsisi (Link List Allocation)
– INode kullanılır.
Dosya Niteliklerini Depolamak
• Sabit boyutlu girdiler, disk adresleri &
directory girdilerindeki nitelikler
• Her bir girdi ayrı bir inode’a işaret eder.
DOS Dosya Sistemi
• FAT’ı kullanılır.
• 8+3 karakterlik dosya isimlerini kullanırlar.
• Read-only, arşiv, gizli ve sistem niteliğine sahip
olabilirler. 2 versiyonu bulunmaktadır.
– FAT-12
• Maksimum partition genişliği 2 Mb’tır.
• 4 farklı partition olabilir.
– FAT16
• Maksimum partition genişliği 2GB’tır.
• 4 farklı partitionu olabilir.
Director Girdisi (MS-DOS)
Blok Genişliği(Block Size)
Windows 98 Dosya Sistemi
• Windwos 95’in ikinci sürümü ile gelmiştir.
• Aslında FAT-32’dir.
– Maksimum partition boyutu 2TB’dır.
– 4 partitiondan fazlasını destekler.
• Dosya isimleri 255 karaktere kadar olabilir.
• FAT-16 ile geriye doğru uyumludur.
Windows 2000 Dosya Sistemi
•
•
•
•
•
NTFS(New Technology File System)’i kullanır.
İlk olarak Windows NT’de kullanmıştır.
Tek bir partition 264 byte’a kadar olabilir.
Dosya isimleri 255 karakter olabilir (unicode).
FAT-16 ve FAT-32 ile geriye doğru uyumlu
değildir.
UNIX/Linux Dosya Sistemi
• Inode’ları kullanır.
• İlk versiyonlarında 14 karakter sınırı
vardı.Fakat sonradan 255 karakteri destekler
hale gelmiştir.
• Dosya sistemi güvenliği varsayılan (built-in)
olarak gelmektedir.
• Bir çok dosya sistemini destekler.
– V7,ext,ext2,ext3
– NFS (Network File System)
– VFAT (Unix)
Ext Dosya Sistemi
• 14 karakter desteği vardır.
• Tek bir dosya boyutu maksimum 2 Gb olabilir.
• ext2
,ext3
daha
sonraki
gelişmiş
versiyonlarıdır.
Linux Dosya Sistemi
Unix V7 Dosya Sistemi
• Bir directory girdisi şu şekildedir:
• Inode’ların sayısı 162 ile sınırlıdır.
/usr/ast/mbox yoluna erişim için
1
.
1
..
4
bin
7
dev
14
lib
9
etc
6
Usr
8
tmp
Blok 132 /usr/ast için olan
Blok 406
/usr directory
Inode26
/usr/ast directory
/usr için olan
Inode6
Root directory
Blok Bilgisi
132
6 numralı Inode
/usr nin 132
numaralı blokta
olduğunu
belirtmekte
6 numralı Inode’a
yönlendirecektir.
6
.
1
..
19
dex
30
erik
51
jim
26
ast
45
bal
Blok Bilgisi
406
26 numralı Inode
/usr/ast nin 406
numaralı blokta
olduğunu
belirtmekte
/usr/ast için 26
numaralı Inode’a
yönlendirecektir.
26
.
6
..
64
grants
92
books
60
mbox
81
minix
17
src
/usr/ast/mbox için
60 numaralı
Inode’a
yönlendirecektir.
Download