You are on page 1of 41

Bölüm 11: Dosya Sistemi

Uygulamaları

Operating System Concepts – 8th Edition, Silberschatz, Galvin and Gagne ©2009
Bölüm 11: Dosya Sistemi Uygulamaları

 Dosya Sistem Yapısı


 Dosya Sistemi Uygulaması
 Dizin (Klasör - Directory) Uygulaması
 Tahsis Metotları
 Boş-alan Yönetimi
 Verimlilik ve Performans
 Kurtarma (Recovery)
 Kütük-yapılı Dosya Sistemleri (Log-Structured File Systems)
 NFS

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ı

mantıksal dosya sistemi

dosya düzenleme modülü

temel dosya sistemi

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 tarihleri (yaratma, erişim, yazma)

dosya sahibi, grubu, ACL (Erişim kontol listesi)

dosya boyutu

dosya veri blokları veya veri bloklarını gösteren işaretçiler

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

kullanıcı alanı çekirdek belleği ikincil depolama

veri blokları
read(index)
her süreç için sistem çapında dosya kontrol bloğu
açık dosya tablosu açık dosya tablosu

kullanıcı alanı çekirdek belleği ikincil depolama

Şekilde işletim sistemleri tarafından sağlanan dosya sistemi


yapıları gösterilmektedir.
Operating System Concepts – 8th Edition 11.6 Silberschatz, Galvin and Gagne ©2009
Sanal Dosya Sistemleri (SDS)
 Sanal Dosya Sistemleri (SDS) (Virtual File Systems (VFS)) dosya
sistemlerinin nesne tabanlı olarak uygulanması için bir yol sunarlar.

 SDS aynı sistem çağrısı arayüzünün (API) farklı tipteki sistemler için
kullanılmasına izin verir.

 API spesifik bir dosya sistemi yerine SDS arayüzü içindir.

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

SDS (VFS) arayüzü

yerel dosya sistemi yerel dosya sistemi uzak dosya sistemi


Tip 1 Tip 2 Tip 1

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:

 Ardışık tahsis (Contiguous allocation)

 Bağlı tahsis (Linked allocation)

 Endekslenmiş tahsis (Indexed allocation)

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

 Basit – sadece başlangıç yeri (blok numarası) ve uzunluğuna (blok


sayısı) ihtiyaç vardır

 Rastgele erişim (Random access)

 Çok yer kaybı vardır (bellekteki dinamik depolama tahsis problemi gibi)

 Dosyalar büyüyemez

 Dış parçalanma (External Fragmentation)

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

 Alan (extent) ardışık bir disk bloğudur


 Alanlar dosya tahsisi için kullanılır.
 Bir dosya bir veya daha fazla alandan oluşabilir.

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

endeks tablosu dosya

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)

Blok numarası hesaplama

(word başına bit sayısı) *


(0-değerli word sayısı) +
ilk 1 bitinin ofseti

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

Boş-alan listesi başı

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

 Sistem programlarını kullanarak diskteki veriyi diğer depolama aygıtlarında


yedekler (back up) (disket, manyetik teyp, diğer manyetik diskler, optik
diskler, vs.)

 Kayıp dosya veya diski, yedekten veriyi alarak kurtarı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.

 Tüm işlemler bir kütüğe (log) yazılır


 Kütüğe yazılan işlem yapılmış (committed) olarak kabul edilir
 Buna rağmen, dosya sistemi henüz güncellenmemiş olabilir

 Kütükteki işlemler dosya sistemine eşzamansız (asenkron) olarak


yazılır
 Dosya sistemi değiştirildiğinde işlem kütükten kaldırılır

 Dosya sistemi çökerse kütükteki tüm kalan işlemler hala


gerçekleştirilmek zorundadır

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

 Sun iş istasyonlarında çalışan ve güvenilir olmayan bir datagram protokolü


(UDP/IP protokolü ve Ethernet) kullanan Solaris ve SunOS işletim
sistemlerinin bir parçasıdır

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

 Bu bağımsızlık, iki uygulama-bağımsız arayüz arasında kullanılan Dış Veri


Temsili (External Data Representation (XDR)) protokolü üzerine inşa edilen
RPC yapıları kullanılması aracılığı ile sağlanmaktadır.

 NFS spesifikasyonu bağlama mekanizması servisleri ile güncel uzak dosya


erişim servislerini birbirinden ayırabilir

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

Mount Cascading mount


S1:/usr/shared  U:/usr/local S2:/usr/dir2  U:usr/local/dir1

Operating System Concepts – 8th Edition 11.40 Silberschatz, Galvin and Gagne ©2009
NFS Bağlama Protokolü
(NFS Mount Protocol)

 Sunucu ve istemci arasında ilk mantıksal bağlantıyı sağlar


 Bağlama işlemi uzak klasörün adının ve bunu içeren makinenin adının
bağlanmasını içerir
 Bağlama isteği ilgili RPC'ye eşlenir ve sunucu makinede çalışan
bağlama sunucusuna iletilir
 İhraç listesi (Export list) – sunucunun bağlama için ihraç ettiği yerel
dosya sistemlerini (isimleri ve bunları bağlamasına izin verilen
makine adları belirtilerek) tanımlar.
 İhraç listesine uygun bir bağlama isteği geldiğinde sunucu bir dosya
tutucusu (file handle) (ilgili erişimler için bir anahtar) döndürür
 Dosya Tutucusu (File handle) – bir dosya sistemi tanımlayıcı ve ihraç
edilen dosya sistemini tanımlamak için bir inode (UNIX dosya
sisteminde nesneyi tanımlamak için bir veri yapısı) numarası
 Bağlama işlemi sadece kullanıcının görüşünü değiştirir, sunucuyu
etkilemez

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ı

 UNIX dosya sistemi arayüzü (open, read, write, ve close çağrılarına ve


dosya tanımlayıcılara (file descriptors) bağlıdır)

 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

 NFS servis katmanı – mimarinin en alt katmanıdır


 NFS protokolünü uygular

Operating System Concepts – 8th Edition 11.43 Silberschatz, Galvin and Gagne ©2009
NFS Mimarisi
istemci sunucu

sistem çağrı arayüzü

SDS arayüzü SDS arayüzü

diğer dosya UNIX UNIX


NFS NFS
sistemi dosya dosya
istemci sunucu
tipleri sistemi sistemi

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

You might also like