Bölüm 9: Dosya Sistemi
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.
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
Dosya İşlemleri-File Operations İş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.
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.
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
Dosya Türleri, İsim, Uzantı File Types – Name, Extension
Erişim Metotları-Access Methods Sıralı Erişim --Sequential Access read next write next reset no read after last write (rewrite) Doğrudan Erişim-Direct Access read n write n position to n rewrite n Her blok belli bir büyüklüğe sahip n = relative block number
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.
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.
Simulation of Sequential Access on a Direct-access File
Relativ adresin İndekslenmesi Kitaplardaki içindekiler kısmı gibi bir indeks aracılığı ile istenilen alana ulaşılması
İ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.
Dizin Yapısı-Directory Structure Dosyalar hakkında bilgi içeren düğüm-node kolleksiyonu Dizin-Directory Dosya-Files F 1 F 2 F 3 F 4 F n Dizin yapısı ve dosyalar diskte yer alırlar.
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.
Windows File System,NTFS
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.
Dizinde Yapılan İşlemler Operations 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
Tek-Düzey Dizin Single-Level Directory Her kullanıcı için tek dizin İsimlendirme ve gruplama problemi (Windows sisteminde dosya isimleri 255 karakter olabilir)
İki-Seviyeli Dizin Two-Level Directory Her kullanıcıya ayrı dizin Farklı kullanıcıların aynı dosya isimleri olabilir Etkili arama
İki-Seviyeli Dizin Two-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
Ağaç Yapılı Dizinler Tree-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
Ağaç Yapılı Dizinler Tree-Structured Directories
Ağaç Yapılı Dizinler Tree-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 mail prog copy prt exp count Deleting “mail” deleting the entire subtree rooted by “mail”
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.
Disk yapısı
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
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
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
Bitişik , Contiguous allocation
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.
Bağlantılı, Linked allocation Bitiş
Bağlantılı, Linked allocation
İ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.
İndeksli, Indexed allocation
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.
Boş Alan Yönetimi Bit Vektör Yöntemi Bağlantılı Liste Yöntemi Gruplama Yöntemi Sayma Yöntemi
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.
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.
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.
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.
Örnek
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.
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ı
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.
Illustration shows total head movement of 640 cylinders. FCFS Illustration shows total head movement of 640 cylinders.
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.
SSTF (Cont.) Illustration shows total head movement of 236 cylinders.
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.
SCAN (Cont.) Illustration shows total head movement of 208 cylinders.
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.
C-SCAN (Cont.)
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.
C-LOOK (Cont.)
Scan Look C-Scan C-Look Direction Go until Go until the last cylinder Go until the last request Service both directions Scan Look Service in only one direction C-Scan C-Look
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.