Professional Documents
Culture Documents
Uygulamaları
Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
Bölüm 11: Dosya Sistemi Uygulamaları
Operating System Concepts – 8th Edition 11.2 Silberschatz, Galvin and Gagne ©2009
Dosya Sistem Yapısı
Dosya yapısı
Mantıksal depolama birimi (Logical storage unit)
İlgili bilgilerin toplanması
Dosya sistemi ikincil depolamada (diskler) yeralır
G/Ç verimliliğini arttırmak için bellek ve disk arasındaki transfer bloklar
halinde gerçekleştirilir.
Her blok bir veya daha fazla sektöre sahiptir. Disk sürücüye bağlı olarak
sektör boyutları 32 byte ile 4096 byte arasında değişir. Genellikle 512 byte
uzunluğundadır.
Dosya sistemi katmanlar halinde düzenlenir
Dosya Kontrol Bloğu (File control block (FCB)) – bir dosya hakkında
bilgilerden oluşan depolama yapısıdır
Operating System Concepts – 8th Edition 11.3 Silberschatz, Galvin and Gagne ©2009
Katmanlı Dosya Sistemi
uygulama programları
G/Ç kontrolü
aygıtlar
Operating System Concepts – 8th Edition 11.4 Silberschatz, Galvin and Gagne ©2009
Tipik Bir Dosya Kontrol Bloğu
dosya izinleri
dosya boyutu
Operating System Concepts – 8th Edition 11.5 Silberschatz, Galvin and Gagne ©2009
Bellekteki Dosya Sistem Yapıları
klasör yapısı
open(dosya adı)
klasör yapısı
dosya kontrol bloğu
veri blokları
read(index)
her süreç için sistem çapında dosya kontrol bloğu
açık dosya tablosu açık dosya tablosu
SDS aynı sistem çağrısı arayüzünün (API) farklı tipteki sistemler için
kullanılmasına izin verir.
Operating System Concepts – 8th Edition 11.7 Silberschatz, Galvin and Gagne ©2009
Sanal Dosya Sisteminin (SDS) Şematik
Görünümü
open(), read(), write() ve close()
dosya sistemi arayüzü çağrıları ve dosya tanımlayıcılar için
ağ
Operating System Concepts – 8th Edition 11.8 Silberschatz, Galvin and Gagne ©2009
Klasör (Dizin) Uygulaması
Lineer liste : Veri bloklarını gösteren işaretçiler ile dosya adlarının lineer
listesi.
programlaması kolay
çalıştırılması zaman alır
Hash Tablosu – hash veri yapısı ile klasör girdilerinin tutulduğu lineer liste.
Hash tablosu dosya adından üretilen bir değeri alır ve lineer listedeki
dosya adını gösteren bir işaretçi döndürür.
Klasör arama zamanını azaltır
Ekleme ve silme kolaydır ancak çarpışmalar (collisions) – iki dosya
adının aynı yeri "hash"lediği durumlar – sorun oluşturabilir
Sabit boyuttan dolayı dosya sayısı arttığı zaman tablonun büyütülmesi
ve hash fonksiyonun değiştirilmesi gerekir.
Operating System Concepts – 8th Edition 11.9 Silberschatz, Galvin and Gagne ©2009
Erişim Metotları
Erişim metodu disk bloklarının dosyalara nasıl tahsis edildiğini gösterir:
Operating System Concepts – 8th Edition 11.10 Silberschatz, Galvin and Gagne ©2009
Ardışık Tahsis (Contiguous Allocation)
Her dosya, diskte bir ardışık bloklar kümesi işgal eder
Çok yer kaybı vardır (bellekteki dinamik depolama tahsis problemi gibi)
Dosyalar büyüyemez
Operating System Concepts – 8th Edition 11.11 Silberschatz, Galvin and Gagne ©2009
Disk Alanının Ardışık Tahsisi
Operating System Concepts – 8th Edition 11.12 Silberschatz, Galvin and Gagne ©2009
Alan Tabanlı Sistemler
(Extent-Based Systems)
Birçok yeni dosya sistemi (Ör., Veritas Dosya Sistemi (VFS)) modifiye
edilmiş bir ardışık tahsis şeması kullanır
Alan tabanlı dosya sistemleri disk bloklarını alanlar (extent) şeklinde tahsis
eder
Operating System Concepts – 8th Edition 11.13 Silberschatz, Galvin and Gagne ©2009
Bağlı Tahsis (Linked Allocation)
Her dosya disk bloklarından oluşan bir bağlı listedir: bloklar disk üzerinde
herhangi bir yere dağıtılmış olabilir.
blok = işaretçi
Operating System Concepts – 8th Edition 11.14 Silberschatz, Galvin and Gagne ©2009
Bağlı Tahsis
dizin (klasör)
Operating System Concepts – 8th Edition 11.15 Silberschatz, Galvin and Gagne ©2009
Bağlı Tahsis
Basit – sadece başlangıç adresine ihtiyaç var
Boş-alan yönetim sistemi – yer israfı yok
Rastgele erişim yok
512 Byte'lık blokların 4 byte'ı işaretçi için 508 byte'ı veri için
kullanılır. Bu da her blok için %0.78 lik bir kayıp demektir. Bu
sorunun çözümü için blokları birleştirip cluster'lar oluşturulabilir. Bu
da veri kullanım oranını arttırabilir, ancak iç parçalanmayı da
arttırır.
En önemli uygulamalarından biri Dosya Tahsis Tablosudur (File-
allocation table (FAT)) – MS-DOS ve OS/2 tarafından kullanılan
disk-alanı tahsisi.
Operating System Concepts – 8th Edition 11.16 Silberschatz, Galvin and Gagne ©2009
Dosya Tahsis Tablosu
(File-Allocation Table)
Operating System Concepts – 8th Edition 11.17 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis (Indexed Allocation)
Her dosyanın kendi endeks bloğu vardır ve bu blokta disk blok adreslerinin
bir dizisi tututlur.
Tüm işaretçileri endeks bloğunda (index block) toplar
Mantıksal görünüm
Endeks tablosu
Operating System Concepts – 8th Edition 11.18 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis Örneği
Operating System Concepts – 8th Edition 11.19 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis
Endeks tablosuna ihtiyaç vardır
Rastgele erişim
Dış parçalanma olmadan dinamik erişim vardır, ancak endeks
bloğundan kaynaklanan yük (overhead) vardır.
Operating System Concepts – 8th Edition 11.20 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis
Sınırsız uzunluktaki (blok büyüklüğü 512 word) bir dosyanın
mantıksaldan fiziksele eşlenmesi.
Bağlı şema (Linked scheme) – Endeks tablosunun bloklarını
bağla (boyutta limit yok).
Bir endeks bloğu genellikle bir disk bloğudur. Bu yüzden direk
olarak okunabilir ve yazılabilir.
Büyük dosyalar için birkaç endeks bloğu birbirine bağlanabilir.
Operating System Concepts – 8th Edition 11.21 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis
Çift-katmanlı endeks (Two-level index)
Birinci seviye endeks bloğunun ikinci seviye endeks bloklarını gösterdiği
yöntemdir.
Bloğa erişim için işletim sistemi önce birinci seviye endeksleri kullanarak
ikinci seviye endeks bloklarına erişir ve onları kullanarak istenen veri
bloğuna erişir.
Bu yaklaşım üçüncü veya dördüncü seviye için de kullanılabilir.
4,096 byte bloklar için 1,024 tane 4 byte'lık işareti kaydedilebilir. İki
seviyeli endekslerde 1,048,576 veri bloğu ve 4 GB'lık bir dosya
boyutuna izin verilir.
Operating System Concepts – 8th Edition 11.22 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis
dış endeks
Operating System Concepts – 8th Edition 11.23 Silberschatz, Galvin and Gagne ©2009
Endekslenmiş Tahsis
Birleşik Şema: UNIX (4K bytes per block)
Operating System Concepts – 8th Edition 11.24 Silberschatz, Galvin and Gagne ©2009
Boş-Alan Yönetimi
Bit vektörü (n blok)
0 1 2 n-1
0 1 0 0 1 0 … 1
0 ⇒ block[i] boş (free)
bit[i] =
1 ⇒ block[i] dolu (occupied)
Operating System Concepts – 8th Edition 11.25 Silberschatz, Galvin and Gagne ©2009
Boş-Alan Yönetimi
Bit haritası için ekstra alana ihtiyaç vardır
Örnek:
blok boyutu = 212 bytes ( 4 kByte)
disk boyutu = 240 bytes (1 Terrabyte)
n = 240/212 = 228 bits (veya 32 Gigabytes) bit haritası ile yönetilebilir.
Ardışık dosyalar elde etmek kolaydır
Bağlı listeler (boş listesi)
Ardışık alan kolay elde edilemez
Alan israfı yok
Operating System Concepts – 8th Edition 11.26 Silberschatz, Galvin and Gagne ©2009
Boş-Alan Yönetimi
Korunması gerekenler:
Boş listesini gösteren işaretçi
Bit haritası veya Bit vektörü
Diskte tutulmalı
Bellekteki ve diskteki kopyaları farklı olabilir
blok[i] için bellekte bit[i] = 1 ve diskte bit[i] = 0 durumuna izin
vermemeli
Çözüm:
Diskte bit[i] = 1 yap
blok[i] 'yi tahsis et
Bellekte bit[i] = 1 yap
Operating System Concepts – 8th Edition 11.27 Silberschatz, Galvin and Gagne ©2009
Diskte Bağlı Boş Alan Listesi
Operating System Concepts – 8th Edition 11.28 Silberschatz, Galvin and Gagne ©2009
Verimlilik ve Performans
Verimlilik şunlara bağlıdır:
Disk tahsis ve klasör algoritmaları
Dosyanın klasör girdisinde tutulan veri tipi
Performans
disk önbelleği (disk cache) – sık kullanılan bloklar için ana bellekte ayrı
bir alan
arkayı-boşalt (free-behind) (bir sonraki sayfa istenir istenmez sayfayı
tampondan kaldırır, böylece önceki sayfalar tekrar kullanılmaz ve
tampon alanı boşa kullanılmaz) ve ileriye oku (read-ahead) (istenen
sayfa ve bazı sonra gelen sayfalar şimdiki sayfa istendiği anda okunur
ve önbelleklenir. Bu sayfalar şimdiki sayfa işlendikten sonra büyük
olasılıkla istenecektir. Bu verinin diskten bir kerede getirilmesi zaman
kazandıracaktır) – sıralı erişimi optimize etmek için teknikler
PC performansını arttırmak için belleğin bir kısmı sanal disk veya RAM
disk olarak ayrılır.
Operating System Concepts – 8th Edition 11.29 Silberschatz, Galvin and Gagne ©2009
Kurtarma (Recovery)
Tutarlılık kontrolü (Consistency checking) – klasör (dizin) yapısındaki veri ile
diskteki veri bloklarını karşılaştırır ve tutarsızlıkları düzeltmeye çalışır
Operating System Concepts – 8th Edition 11.34 Silberschatz, Galvin and Gagne ©2009
Kurtarma (Recovery)
Kütük yapılı (Log structured (veya journaling)) dosya sistemleri
dosya sistemindeki her güncellemeyi bir işlem (transaction) olarak
kaydeder.
Operating System Concepts – 8th Edition 11.35 Silberschatz, Galvin and Gagne ©2009
The Sun Network File System (NFS)
LAN'lardaki (veya WAN) uzak dosyalara erişmek için bir yazılım sistemidir
Operating System Concepts – 8th Edition 11.36 Silberschatz, Galvin and Gagne ©2009
Ağ Dosya Sistemi (NFS)
Birbirine bağlı işistasyonları, dosyaların paylaşılmasına izin verilen bağımsız
dosya sistemlerine sahip bağımsız makineler kümesi olarak görülebilir.
Uzak bir klasör yerel bir dosya sistemi klasörü üzerine bağlanabilir
(mount)
Bağlanan klasör yerel dosya sisteminin bir altağacı olarak görünür.
Uzak klasörün bağlama işlemi için uzak klasörün ana bilgisayar adı
bilinmelidir
Ancak bu şekilde uzak klasördeki dosyalara açık bir şekilde
erişilebilir
Erişim hakları onayı açısından, potansiyel olarak her dosya sistemi
(veya dosya sistemindeki bir klasör) yerel bir klasör üzerine bağlanabilir
Operating System Concepts – 8th Edition 11.37 Silberschatz, Galvin and Gagne ©2009
Ağ Dosya Sistemi (NFS)
NFS farklı makineler, işletim sistemleri ve ağ mimarilerinden oluşan
heterojen ortamlarda çalışmak için tasarlanmıştır. NFS spesifikasyonları bu
ortamlardan bağımsızdır
Operating System Concepts – 8th Edition 11.38 Silberschatz, Galvin and Gagne ©2009
Üç Bağımsız Dosya Sistemi
Operating System Concepts – 8th Edition 11.39 Silberschatz, Galvin and Gagne ©2009
NFS'de Bağlama
Operating System Concepts – 8th Edition 11.40 Silberschatz, Galvin and Gagne ©2009
NFS Bağlama Protokolü
(NFS Mount Protocol)
Operating System Concepts – 8th Edition 11.41 Silberschatz, Galvin and Gagne ©2009
NFS Protokolü
Uzak dosya işlemleri için bir uzak prosedür çağrıları (RPC) kümesi sağlar.
Prosedürde aşağıdaki işlemler desteklenir:
Klasördeki bir dosyayı aramak
Klasör girdilerini okumak
Bağlantı ve klasörleri değiştirmek
Dosya özelliklerine erişmek
Dosyaları okumak ve yazmak
Değiştirilen veri öncelikle sunucunun diskinde işlenmeli, sonra istemcilere
döndürülmelidir (önbelleklemenin avantajları kaybolur)
NFS protokolü koşutzamanlılık-kontrol mekanizmaları sağlamaz
Operating System Concepts – 8th Edition 11.42 Silberschatz, Galvin and Gagne ©2009
NFS Mimarisinin Üç Ana Katmanı
Sanal Dosya Sistemi (SDS) (Virtual File System (VFS)) katmanı – yerel
dosyalar ile uzak dosyaları ayırır ve yerel dosyalar dosya sistemi tiplerine
göre tekrar ayrılır
SDS, yerel istekleri dosya sistem tiplerine uygun olarak yönetmek için
dosya sistemine özgü operasyonları aktive eder
Uzak istekler için NFS protokol prosedürlerini çağırır
Operating System Concepts – 8th Edition 11.43 Silberschatz, Galvin and Gagne ©2009
NFS Mimarisi
istemci sunucu
Operating System Concepts – 8th Edition 11.44 Silberschatz, Galvin and Gagne ©2009
Bölüm 11 Son
Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009