Download - Bölüm 9 : Dosya Sistemi
Bölüm 9: Dosya Sistemi
10.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dosya Kavramı
Birleşik mantıksal adres aralığı Dosya: Dosya, bilgilerin ve programların saklandığı yerdir.
Dizin: Dizin, bilgiler ve programlarla birlikte dosyalarında saklanabildiği yerlerdir.
Dosya yönetimi işletim sisteminin sunduğu temel hizmetlerden biridir. Dosyalar, disk, disket, teyp gibi, çeşitli ikincil saklama alanlarında saklanır. Tüm bu saklama aygıtlarının kendine özel karakteristik yapısı vardır. İşletim sistemi, bu yapıya uygun dosya yönetimini gerekli aygıt üzerinde gerçekleştirir.
10.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dosya Nitelikleri-File Attributes
İsim- Name – only information kept in human-readable form Tanımlayıcı- Identifier – unique tag (number) identifies file within
file system Tür -Type – needed for systems that support different types Konum-Location – pointer to file location on device Büyüklük-Size – current file size Koruma-Protection – controls who can do reading, writing,
executing Tarih, Saat ve Kullanıcı Tamını- Time, date, and user
identification – data for protection, security, and usage monitoring Information about files are kept in the directory structure, which is
maintained on the disk
10.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dosya İşlemleri-File Operations
9.1.1 - Dosya İşlemleri İşletim sisteminin, dosyayla ilgili sunduğu hizmetler : 1- Dosya yaratılması Bir dosyanın yaratılması için iki adım vardır. Birincisi dosyanın disk
üzerinde yerleştirilebileceği boş bellek alanı bulunur. İkinci olarakta dosyanın yerleşeceği dizin belirtilerek dosyaya, bir dosya adı verilir.
2- Dosyanın yazılması :Dosyanın, disk üzerindeki bir dizin içine yazılabilmesi için, işletim sistemi dosyanın yerleştirileceği dizini bulur. Her dizin, içine yazılan dosya bilgilerini tutan bir yazma işaretleyicisine sahiptir. Bu işaretleyiciye göre dosyanın yerleşeceği adres bloğu bulunur ve dosya bu yere yazılır.
10.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dosya İşlemleri-File Operations
3- Dosyanın okunması Dosyanın disk üzerinde okunması için, işletim sistemi dosyanın yerleştiği dizini bulur. Her dizin, bir okuma işaretleyicisine sahiptir. Bu işaretleyici bilgisine göre dosya dizin üzerinden okunur. Bir çok işletim sisteminde, dizinlerde bulunan okuma ve yazma işaretleyicileri yerine “aktif dosya pozisyon” işaretleyicisi bulunur. Bu işaretleyici her iki işaretleyicinin yaptığı işi tek başına yapar.
4- Dosyanın yerinin yeniden düzenlenmesi Yeri yeniden düzenlenecek olan dosyaya ilişkin dizin bulunur. Bu dizinin aktif dosya işaretleyicisinde, belirtilen dosya ile konum bilgisi yeniden düzenlenir.
10.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Açık Dosyalar
Açık dosyaları yönetmek için gereken bilgiler : Dosya Göstergeci-File pointer: pointer to last read/write
location, per process that has the file open File-open count- Dosyanın kaç defa açıldığı bilgisini tutar. Açık
dosya tablosundan silinmesi için, dosyayı kullanan tüm işlemlerin dosyayı kapatması gerekir. – to allow removal of data from open-file table when last
processes closes it Disk Konumu -Disk location of the file: cache of data access
information Erişim Hakları- Access rights: per-process access mode
information
10.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dosya Türleri, İsim, Uzantı File Types – Name, Extension
10.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Erişim Metotları-Access Methods
Sıralı Erişim --Sequential Accessread nextwrite next resetno read after last write
(rewrite) Doğrudan Erişim-Direct Access
read nwrite nposition to n
read nextwrite next
rewrite nHer blok belli bir büyüklüğe sahip
n = relative block number
10.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Sıralı Erişim
Dosya içerisine veriler belirli bir sıra ile yazılır. Her kayıt bir önceki kayıttan sonra gelir. Dosya yazma işlemi,
yazma işaretleyicisinin (writer pointer) bulunduğu noktadan itibaren gerçekleştirilir.
Yazma tamamlandıktan sonra işaretleyici otomatik olarak bu kaydın sonuna gelir. Dosya okuma işleminde, okuma işaretleyicisinin (reader pointer) bulunduğu konumdan sonraki bilgi okunur.
İşaretleyicinin değeri otomatik olarak artar. Bu erişim türü “sıralı erişim” olarak bilinir. Bu erişim türünü kullanan bazı sistemlerde n kayıt ileri ya da n kayıt geri gidilebilir.
10.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Doğrudan erişim
Doğrudan erişim tekniğinde disk üzerindeki her dosya numaralandırılmış blok sıralarına kaydedilir.
Bu erişim tekniğiyle rastgele seçilmiş bloklara ulaşılarak okunup - yazılabilir.
10.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Simulation of Sequential Access on a Direct-access File
10.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Relativ adresin İndekslenmesi
Kitaplardaki içindekiler kısmı gibi bir indeks aracılığı ile istenilen alana ulaşılması
10.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
İndeksli erişim
İndeksli erişim tekniğinde, disk üzerindeki dosyaların listesi bir blokta tutulur.
Bu bir kitabın indeks sayfasına benzetilebilir. Kitap içinde ulaşmak istediğimiz konuyu önce indeksten bulup oradan da sayfa numarasını alırız.
Bu yöntemde de ulaşılmak isteden dosya önce indeks bloğuna bakılarak yeri bulunur. Daha sonra dosyaya ulaşılır.
10.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dizin Yapısı-Directory Structure
Dosyalar hakkında bilgi içeren düğüm-node kolleksiyonu
F 1 F 2F 3
F 4
F n
Dizin-Directory
Dosya-Files
Dizin yapısı ve dosyalar diskte yer alırlar.
10.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dosya Sistemi Organizasyonu
Drectory kısmı o partition da yer alan dosyaların dosyaların isim, konum, büyüklük, tür gibi bilgilerini içermektedir.
10.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Windows File System,NTFS
10.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Windows File System,NTFS
Standard information: This attribute includes the information that was standard in the MS-DOS world: read/write permissions, creation time, last modification time, count of how many directories point to this this file (hard link
count. File Name: This attribute describes the file's name in the Unicode
character set. Multiple file names are possible, such as when: the file has multiple links, or the file has an MS-DOS short name.
Security Descriptor: This attribute lists which user owns the file and which users can access it (and how they can access it).
Data: This attribute either contains the actual file data in the case of a small file or points to the data (or points to the objects that point to the data) in the case of larger files.
10.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Dizinde Yapılan İşlemlerOperations Performed on Directory
Arama- Search for a file Dosya Oluşturma-Create a file Dosya Silme-Delete a file İçerik Listeleme-List a directory Dosya Adlandırma-Rename a file Yedekleme-Traverse the file system
10.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Tek-Düzey DizinSingle-Level Directory
Her kullanıcı için tek dizin
İsimlendirme ve gruplama problemi(Windows sisteminde dosya isimleri 255 karakter olabilir)
10.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
İki-Seviyeli DizinTwo-Level Directory
Her kullanıcıya ayrı dizin
Farklı kullanıcıların aynı dosya isimleri olabilir Etkili arama
10.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
İki-Seviyeli DizinTwo-Level Directory
. Sistemin Master Dosya Dizininde -Master File Directory (MFD)
kişisel dosya dizinleri için pointer bulunur.
Avantajları İsim çakışması problemini önler Kullanıcıları birbirinden ayırır. (Koruma). Etkin arama
10.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Ağaç Yapılı DizinlerTree-Structured Directories
Kullanıcıya iç içe dizin yapma imkanı verir. Her dizin içeriğideki bit , girişin dosyamı, dizin mi olduğunu belirtir. 0 dosya, 1 alt dizin anlamındadır. Özel sistem çağrıları ile dizin oluşturma ve silme gerçekleştirilir. Her kullanıcı kendi dizin ve alt dizinlerini tanımlayabilir. Bu tür dizinlerde her dosya kendi konumunu belirleyen bir dizin
yoluna sahiptir. Bu yapıda, farklı dizinler içerisinde olmak kaydıyla aynı dosya ve alt dizin isimleri kullanılabilir.
Aynı düzeydeki dizinlerin isimleri birbirinden farklı olmak zorundadır.
Daha etkin arama yapılabilir
10.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Ağaç Yapılı DizinlerTree-Structured Directories
10.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Ağaç Yapılı DizinlerTree-Structured Directories
Absolute or relative path name Creating a new file is done in current directory Delete a file
rm <file-name> Creating a new subdirectory is done in current directory
mkdir <dir-name>Example: if in current directory /mail
mkdir count
prog copy prt exp count
Deleting “mail” deleting the entire subtree rooted by “mail”
10.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Disk yapısı
Bilgi, her iki yüzü manyetik bir materyalle kaplı olan diskler üzerine kaydedilir.
Yüksek hızlı bir motor diskleri okuma yazma kafası önünde döndürür.
Okuma yazma kafaları da bu diskler üzerinde bir kol yardımıyla hareket ederek istenilen bilgiye ulaşır.
Disk yüzeyi mantıksal olarak izlere(track) bölünmüştür. Bilgi okuma yazma kafasının altında bulunan ize otomatik olarak kaydedilir ya da o iz üzerinden okunur.
10.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Disk yapısı
10.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Yerleşim metotları,Allocation Methods
İkincil bellek üzerine bir çok dosya kaydedilir. Bu nedenle disk üzerindeki boş alanların yönetimi ne kadar
önemliyse, kaydedilecek dosyaların disk üzerine en verimli şekilde yerleştirilmesi de o derece önemlidir.
İşletim sistemlerinin ikincil bellek üzerine bilgi yerleştirmek için kullandıkları üç çeşit metod bulunmaktadır:
Bitişik , Contiguous allocation
Bağlantılı, Linked allocation
İndeksli, Indexed allocation
10.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bitişik , Contiguous allocation
Bu yerleşim metodunda, her dosya disk üzerinde birbirini takip eden adreslerde bulunur.
Bu yerleşim yöntemiyle yerleştirilmiş olan dosya, ilk blok adresi ve uzunluğuyla tanımlanır. Örneğin bir dosya n blok uzunluğunda ve b adresinden başlayarak yerleştirilmişse, dosyanın yerleştiği alan b, b+1, b+2, …… ….b+(n-1).
Bu durum bir sonraki slayttaki şekilde görülmektedir. Örneğin, listedeki dene dosyası 14 nolu bloktan başlayarak, sıra ile
14,15,16 numaralı bloklarda yerleştirilmiştir. dene dosyası 14 nolu blok adresi ile başlamaktadır ve toplam uzunluğu üç bloktur
10.29 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bitişik , Contiguous allocation
Each file occupies a set of contiguous blocks on the disk
Simple – only starting location (block #) and length (number of blocks) are required
Random access
Wasteful of space (dynamic storage-allocation problem)
Files cannot grow
10.30 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bitişik , Contiguous allocation
10.31 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bağlantılı, Linked allocation
Bağlantılı yerleşim tekniğinde, her dosya parçalara ayrılarak değişik yerlerdeki disk bloklarına yerleştirilebilir.
Dizinler dosyanın ilk ve son bloğunun bulunduğu adresleri gösteren bir işaretliyiciye(pointer) sahiptir.
Aynı zamanda, dosyanın yerleştiği her blok dosya bilgisinin yanında kendisinden sonra gelen bloğu gösteren bir işaretliyiciye de sahiptir.
Şekil de görülen araba dosyası 9 nolu bloktan başlayıp 23 nolu blokta sona ermektedir.
9 nolu blok kendinden sonraki 16 nolu bloğun numarasını tutar. Benzer şekilde, diğer bloklar da kendisiden sonra gelen bloğun numarasını tutarlar
File-allocation table (FAT), bağlantılı yerleşim yöntemini kullanmaktadır.
10.32 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bağlantılı, Linked allocation
Bitiş
10.33 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bağlantılı, Linked allocation
10.34 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
İndeksli, Indexed allocation
İndeksli yerleşimde her dosya için bir indeks bloğu oluşturulmuştur. Dizinler dosyaların indeks blok adresini tutar. Bu indeks bloğunda
dosyanın yerleşmiş olduğu her bloğun adresi vardır. Böylece her bloğa direkt olarak ulaşabilir. Şekilde görülen deneme
dosyasının indeks bloğu 19 nolu bloktur. 19 nolu blokta deneme dosyasının yerleşmiş olduğu blokların
numaraları bulunmaktadır.
10.35 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
İndeksli, Indexed allocation
10.36 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Boş Alan Yönetimi
Disk üzerinde bulunan dosyalar silindiğinde, silinen dosyaların boşalttığı alanları tekrar kullanılması gerekmektedir.
Bu nedenle, işletim sistemleri disk üstündeki boş alanların yönetimiyle ilgili bir "boş alan listesi" tutar.
Bir dosya, kaydedilmek istendiğinde işletim sistemi bu liste üzerinden dosyanın yerleşeceği en uygun boşluğu bulur ve dosya buraya kaydedilir.
Daha sonra bu alan boş alan listesinden çıkartılır. Bir dosya silindiğinde ise, silinen dosyanın boşalttığı alan boş alan
listesine eklenir. İkincil bellek üzerindeki boş alanların listesini tutmak için işletim
sistemlerinde kullanılan çeşitli yöntemler vardır.
10.37 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Boş Alan Yönetimi
Bit Vektör Yöntemi Bağlantılı Liste Yöntemi Gruplama Yöntemi Sayma Yöntemi
10.38 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bit Vektör Yöntemi
Bit vektör yönteminde boş alan listesi bir bit haritası şeklinde tutulur.
Bilgi bulunan yerler 0, boş olan yerler 1 ile gösterilir (Bazı işletim sistemlerinde bunun tersi de olabilir).
Örneğin disk üstünde 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17,18, 25, 26, and 27 nolu alanların boş olduğunu kabul edilirse, bu yönteme göre bit vektörü şu şekilde olur. 001111001111110001100000011100000 Bu yöntemin temel avantajı basit olması ve ardarda gelen boş alanların kolaylıkla bulunabilmesidir.
10.39 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Bağlantılı Liste Yöntemi
Boş alanların tutulması ile ilgili işletim sistemlerinin kullandığı diğer bir yöntem ise bağlantılı liste yöntemidir. Bu yönteme göre boş alan kendisinden sonra gelen boş alanı gösteren bir işaretleyici(pointer) tutar.
10.40 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Gruplama, Grouping Yöntemi
Kullanılan bir diğer yöntem de gruplamadır.
Bu yöntemde birbirlerini takip eden boş alanlar gruplanır ve grubun ilk elemanın adresi bir önceki boş alan grubunun son elamanında tutulur. Grubun ilk elemanı kendisinden sonra kaç tane boş alan olduğu bilgisini tutar.
10.41 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Sayma Yöntemi
İkinci bellek üzerinde bulunan ilk boşluk alanda, tüm boş alanların ve bunları takip eden boşlukların adres ve sayıları tutulur.
10.42 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Örnek
10.43 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
10.44 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Disk Planlama (Disk Scheduling)
İkincil bellek üzerinde çok sayıda okuma/yazma işlemi yapılmaktadır. Okuma/yazma işlemlerinin çok hızlı gerçekleştirilmesi gerekmektedir.
Disk hızını belirleyen 3 etken vardır :
1. Sistem öncelikle kafayı uygun iz ya da silindir üzerine hareket ettirir. Bu harekete ”Arama”, geçen süreye de ”Arama Süresi” denir.
2. Kafa uygun track(iz) üzerindeyken, doğru sektöre gelene kadar geçen süreye de ”Rotasyonel Gecikme (Rotational Delay)” denir.
3. Son olarak bilgi diskten okunarak ana belleğe transfer edilinceye kadar geçen süreye de ”Transfer Süresi” denir.
10.45 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Disk Planlama (Disk Scheduling)
Bir diskin okuma/yazma isteğine cevap vermesi bu üç sürenin toplamıyla bulunur. Arama süresinin kısa olması ve kafanın istenilen bloğa hızlı ulaşabilmesi için, çeşitli disk çizelgeleme algoritmaları geliştirilmiştir. Bunlardan bazıları :
FCFS İlk gelen ilk hizmet disk çizelgeleme algoritması SSTF disk çizelgeleme algoritması SCAN disk çizelgeleme algoritması C-LOOK disk çizelgeleme algoritması C-SCAN disk çizelgeleme algoritması
10.46 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
FCFS, İlk Gelen İlk Hizmet Disk Planlama
İlk gelen ilk hizmet disk planlama en basit disk çizelgelemesidir. Disk kuyruğundaki sıraya göre okuma-yazma kafası izler üzerinde hareket ettirilir.
Örnek : Disk kuyruğu : 68,123, 57, 128, 44, 184, 95, 32
Okuma-Yazma Kafası başlama konumu: 78 izde. Bu algoritmaya göre gerçekleştirilecek olan işlem şu sırayla olacaktır.
78. izde bulunan okuma-yazma kafası önce 68. ize sonra sırayla 123, 57, 128, 44, 184, 95 ve 32 izlere hareket edecektir.
10.47 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
FCFS
Illustration shows total head movement of 640 cylinders.
10.48 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Shortest-seek-time-first (SSTF) algorithm.
SSTF disk çizelgeleme algoritmasında okuma yazma kafası bulunduğu konumdan (başlama konumu), arama zamanının en düşük olduğu iz üzerine hareket ederek işlemlerini gerçekleştirir.
.SSTF algoritması disk başlığının ilk durumuna en yakın olan silindiri ilk işlem için seçecektir.
Örnek : Disk kuyruğu : 68,123, 57, 128, 44, 184, 95, 32
Okuma-Yazma Kafası başlama konumu: 78 iz. Bu algoritmaya göre gerçekleştirilecek olan işlem şu sırayla
olacaktır. 78. izde bulunan okuma-yazma kafası arama zamanı en düşük olan 68. ize hareket eder.
Daha sonra sırasıyla 57, 44 ve 32 izler yönüde hareket eder. 32 izden sonra arama zamanı en düşük olan 95 ize hareket eder.
Buradan da sırası ile 123, 128 ve 184’üncü izlere hareket eder.
10.49 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
SSTF (Cont.)
Illustration shows total head movement of 236 cylinders.
10.50 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
SCAN Algoritması
Bu algoritmada disk başlık kolu diskin bir ucundan başlayarak diğer ucuna (kenarına) gidene kadar hareket eder ve karşılaştığı silindirler üzerinde işlem yapar.
Sonra diğer kenardan ters yönde hareket eder ve aynı işlemleri yapar.
Böylelikle kuyruktaki tüm silindirlerin taranması için diskin önce ileri sonra geri hareketi gerekiyor.
Burada önemli olan, disk başlığının hareket yönü belirlenmelidir. Sometimes called the elevator algorithm. Illustration shows total head movement of 208 cylinders.
10.51 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
SCAN (Cont.)
Illustration shows total head movement of 208 cylinders.
10.52 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
C-Scan (Circular SCAN scheduling)
C-Scan disk çizelgeleme algoritmasında okuma-yazma kafası bulunduğu konumdan son iz yönünde hareket ederek bu alan içinde bulunan işlemleri gerçekleştirir.
Daha sonra, son ize ulaştığında buradan hızlı bir şekilde ilk ize dönerek, ilk iz ile ilk konumu arasında kalan işlemleri yapar.
10.53 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
C-SCAN (Cont.)
10.54 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
C-LOOK
Version of C-SCAN Arm only goes as far as the last request in each direction, then reverses
direction immediately, without first going all the way to the end of the disk.
10.55 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
C-LOOK (Cont.)
10.56 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
C-LookC-Scan
Scan Look
Go until the last request
Go until thelast cylinder
Service in only one direction
Service both directions
Direction
Go until
10.57 Silberschatz, Galvin and Gagne ©2005Operating System Concepts
Selecting a Disk-Scheduling Algorithm
SSTF is common and has a natural appeal SCAN and C-SCAN perform better for systems that place a
heavy load on the disk. Performance depends on the number and types of requests. Requests for disk service can be influenced by the file-allocation
method. The disk-scheduling algorithm should be written as a separate
module of the operating system, allowing it to be replaced with a different algorithm if necessary.
Either SSTF or LOOK is a reasonable choice for the default algorithm.