Kütük Yönetim Sisteminin İşlevleri Kütük Yönetimi Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Mantıksal kütük yapılarından fiziksel yapılara geçişin sağlanması Kütük başına göreli mantıksal tutanak numaralarının, silindirkafa-sektör üçlüsüne dönüştürülmesi İkincil belleklerin verimli kullanımlarının sağlanması Kütüklerin paylaşılması, korunması ve kurtarılmasıyla ilgili araçların sağlanması 1 2 Kavramsal Kütük Modeli Kütük Kavramı Ana bellek dışında saklanan veri kümelerine kütük denir. Modern işletim sistemlerinde kütük kavramı, tüm G/Ç birimlerinde kullanılır. Kullanıcılar açısından, ikincil belleklerde saklanan kütükler arası işlemlerle, G/Ç birimleriyle yapılan veri aktarım işlemleri arasında bir ayrım kalmaz. Veri aktarım amaçlı G/Ç erişimleri, kütüklere ilişkin yöntem ve araçlarla gerçekleştirilir. Örnek: UNIX işletim sisteminde metin türü bir kütüğün yazıcıdan dökülmesi cp prog.c /dev/lp0 3 4 Sürücüden Bağımsız G/Ç İşlemleri Gerek kütükler ve gerekse veri aktarım amaçlı G/Ç birimleri, program geliştirme ve derleme sonrasında simgesel kimliklerini korurlar. Örnek: prog.c, /dev/lp0 simgesel kimlikleri Simgesel kimlikler, işletimin başında fiziksel kütük ve sürücü adlarıyla ilişkilendirilirler. Kavramsal Kütük İşlemleri Kabuk katmanında son kullanıcı için Sistem komutları Üst düzey programlar, sistem komutları ve programcılar için Sistem çağrıları 5 6
Kütüklerle İlgili Sistem Komutları Kütük Kimliği Kütük adı, kütüğün bulunduğu sistem, sürücü ve erişim izi kimliği kütük kimliğini oluşturur. Her kütüğün kimliği, varlığını sürdürdüğü evrende biriciktir. Kütüğe erişim kütük kimliği ile olur. MS-DOS'ta, C:\bbm\program.pas kütük kimliği içinde C: sürücü adını, \bbm erişim izini, program.pas ise kütük adını simgeler. UNIX te sürücü adı kullanılmaz. Örnek: /etc/grub.conf 7 8 Kılavuz Kütük Tek Düzeyli Kılavuz Yapıları Bir kütük sistemindeki kütükler temel olarak iki çeşittir: Kılavuz kütükler Ve diğerleri (veri saklamak üzere kullanılan kütükler) Kılavuz kütükler, sistemde yer alan kütüklere erişimi sağlamak için şu tür bilgileri saklar: Kütük adı Kütük türü Kütük yaratılma, erişim, ve son günlenme zamanları Kütüğe erişim hakları Fiziksel erişim bilgileri Kök kılavuz, :\, / gibi damgalarla simgelenir ve işletim sistemi tarafından oluşturulur. 9 10 Çok Düzeyli Kılavuz Yapıları Kütük İşlemleri için Sistem Çağrıları open(kütük kimliği,erişim türü) Program içinde geçen kütük kimliği ile fiziksel kütüğün, işletim sırasında eşleştirilmesidir. Erişim türü parametresi ile istenen erişim haklarını denetlemek amacıyla işletim sistemince kullanılır. Önce kılavuz kütüğe sonra da ilgili kütüğe olmak üzere iki ayrı adımda sürücü (disk) erişimi gerektirir. Kütüğe ilişkin erişim bilgilerinin tutulduğu kılavuz kütük ögeleri ana bellekte işletim sistemi yastık alanlarına (handle, file descriptor) taşınır. Yastık alanlarının sayısı için bir üst sınır olduğundan, sistemde eş zamanlı olarak açık tutulabilen kütük sayısı da sınırlıdır. Herbir görev için de bir üst sınır konur. UNIX: maxfiles MS-DOS: files 11 12
Kütük İşlemleri için Sistem Çağrıları close(kütük kimliği) Görevler, açtıkları kütükler üzerinde işlemleri tamamladıklarında, close çağrısıyla açık kütüklerin yastık alanlarını işletim sistemine döndürürler. sequentialread (kütük kimliği,yastık) sequentialwrite(kütük kimliği,yastık) Kütük açma işleminden sonra ilk erişilen tutanağın, genelde hep sıfırıncı tutanak olacağı varsayılır. Sıradan okuma-yazma işlemlerinde bir önceki işlemde sözkonusu edilen tutanağı izleyen tutanağın işlemi gerçekleştirilir. Her okuma yazma sonrasında tutanak göstergesi (file pointer) kendiliğinden bir artırılır. Tutanak göstergesi işletim sistemi yastık alanında tutulur Kütük İşlemleri için Sistem Çağrıları randomread (kütük kimliği,tutanak numarası,yastık) randomwrite(kütük kimliği,tutanak numarası,yastık) Rasgele okuma-yazmada, ilgili tutanağın kütük içindeki sıra numarası verilerek herhangi bir tutanak üzerinde işlem yapabilme olanağı sağlanır. seek (kütük kimliği,mantıksal tutanak numarası) read (kütük kimliği,yastık) Okuma-yazma işlemlerini, sıradan ve rasgele şeklinde ayrıştırmayan işletim sistemlerinde, seek işlemi kullanılır. Rasgele okuma - yazma yapılacaksa, önce seek çağrısı ile sözkonusu tutanak belirlenir sonra okuma - yazma işlemi gerçekleştirilir. 13 14 Klasik Kütük İşlemleri Diskte Verilerin Fiziksel Düzenlenişi 15 16 Kütüklere İlişkin Soyutlama Düzeyleri Kütük Yönetim Sistemine İlişkin Soyutlama Düzeyleri SCSI standartında, sürücü başına göreli öbek adreslerinden silindir - kafa - sektör üçlüsünün oluşturduğu fiziksel adreslere geçişi, disk birimi yapar. 17 18
Öbek (Block) Kavramı Öbek Boyu Seçiminin Disk Kullanımına Etkisi Disk biriminden bir seferde okunup yazılabilen veri birimi öbek olarak adlandırılır. Bir öbek, çoğu kez ikinin katları şeklinde birden çok sektör içerir. Kütükleri oluşturan mantıksal tutanaklar, disk üzerine serpiştirilmiş bu fiziksel öbekler içinde saklanır. Öbeklerin boyunun seçimine göre disk kullanımının verimliliği ve etkinliği değişebilir. Block size Koyu çizgi (soldaki ölçeğe göre) diskin veri aktarım hızını verir. Kesikli çizgi (sağdaki ölçeğe göre) disk kullanım etkinliğini verir. Bütün kütüklerin 2KB olduğu varsayılmıştır. 19 20 Kılavuz Kütük Satırı Bir kılavuz kütük satırında, ilgili kütük hakkında saklanan bilgiler: Kütük adı Kütük türü Kütük yaratılma, erişim, ve son günlenme zamanları Kütüğe erişim hakları Fiziksel erişim bilgileri CP/M kılavuz kütük satırı CP/M işletim sisteminde, bir kütüğe ilişkin öbek adresleri, kılavuz kütük satırında saklanır. Bir kütük, bir kılavuz kütük satırının taşıyabileceğinden daha fazla öbek içeriyorsa, extent alanı kullanılır. 22 21 MS-DOS Kılavuz Kütük Satırı FAT (File Allocation Table) MS-DOS işletim sisteminde herbir sürücü için bir FAT tablosu tutulur. Bu tablo, sürücüdeki herbir öbeğin hangi kütüğe aktarıldığını gösterir. MS-DOS kılavuz kütük satırında, ilgili kütüğe ilişkin ilk öbek numarası saklanır. İlk öbek numarasıyla FAT e erişilerek, sonraki öbeklerin numaraları tespit edilir. FAT, diske erişimleri azaltmak amacıyla bellekte tutulur. 23 24
Disket Sürücü için FAT Boyu Hesaplanması 1.44 MB lık bir disket, 512 byte uzunluğunda öbeklere sahipse, FAT tablosunun Satır sayısı: 1440 KB / 0.5KB = 2880 Herbir satırın boyu: 12 bit, (2 11 < 2880 < 2 12 ) Toplam boyu: 2880 * 12/8 = 4320 byte Diskte kapladığı öbek sayısı: 9 * 2 = 18 öbek FAT iki kopya olarak saklanır. MS-DOS ta 1.44MB Disket Birimlerinin Düzenlenişi Kök kılavuzun yer aldığı disk öbeklerine nasıl erişileceğini gösteren bir yapı bulunmadığından, kök kılavuzların sürücü üzerindeki konumları değişmezdir. MS-DOS, 1.44 MB'lık disketlerde, kök kılavuzu 19 uncu sektörden başlayarak, en çok 14 sektörlük yer kaplayacak biçimde yaratır. 25 26 UNIX te i-node ve Kılavuz Kütük Görünümü UNIX te Fiziksel Disk Öbeklerine Erişim 27 28 UNIX te Kütük Boyu Sınırları Disk Üzerinde i-node Yerleşimi Öbek boyu = 2KB, öbek adresi=4 byte olduğu varsayılırsa, sadece i-node kullanılırsa: 10 öbek tek dolaylı: 10 + 2024/4 = 10 + 512 = 522 öbek çift dolaylı: 10 + 512 + 512 2 üçlü dolaylı: 10 + 512 + 512 2 + 512 3 a) i-node öbekleri diskin başına yerleştirilebilir. b) Disk silindir gruplarına bölünebilir. Herbir silindir grubu, kendi i-node larını belli sektörlerde saklar. 29 30
UNIX te Kütük Kimliğinden Fiziksel Öbek Adresine Geçiş Kütüklerin Farklı Kılavuzlarca Paylaşımı Windows ta simgesel bağ (shortcut) UNIX te bağ (hard link) simgesel bağ (soft/symbolic link) 31 32 UNIX te Bağ Sayacı Kullanımı Kütük Yönetim Sistemi Yerleşimi (a) Kütük paylaşılmadan önce (b) Kütük ikinci bir kılavuz tarafından paylaşılmaya başlandıktan sonra (c) Kütüğün ilk sahibi olan kılavuz silindikten sonra 33 34 Kütüklere Diskte Yer Atanması Kütüklere Diskte Bitişken Alan Atama Kütüklere yer atanırken gözetilen kıstaslar: Erişim hızı Sıradan Erişim, Rastgele Erişim Disk alanının verimli kullanımı Kütüklerere yer atama yöntemleri şu şekilde sınıflandırılabilir: Bitişken Bitişken olmayan Zincirli Dizinli 35 36
Kütüklere Diskte Bitişken Alan Atama Disk Alanlarının Parçalanması Boş alanların başlangıç öbek adresleri ve öbek sayıları boş alan çizelgesi ile tutulur. First-fit, best-fit algoritmaları kullanılabilir. Bitişken alan atama yönteminin Olumlu yönü: Kütüklere erişimlerde hızlı erişim Olumsuz yönü: Diskte oluşan parçalanma İç ve dış parçalanma 37 38 Zincirli Yöntemle Kütüğün Diskte Yerleşimi Zincirli Yöntemle Kütüğün Diskte Yerleşimi Boş alanlar bağlaçlı liste yapısında tutulur. MS-DOS FAT kütük sistemi zincirli yönteme bir örnektir. Tarama işlemlerini hızlandırmak üzere, FAT ana belleğe taşınır ve işlemler ana bellekte yapılır. Zincirli yer atama yönteminin Olumlu yönü: Kütüklere sıradan erişimlere uygunluk Olumsuz yönü: Kütüklere rasgele erişimlerde, erişilecek öbekten önceki bütün öbeklerin adreslerini öğrenme zorunluluğu Bağ bozulmalarına duyarlılık 39 40 Dizinli Yönteme Göre Bir Kütüğün Diskte Yerleşimi Dizinli Yönteme Göre Bir Kütüğün Diskte Yerleşimi Boş alanlar bit çizelgesi ile tutulur. Öbek boyu 4 KB olan 10GB lık disk için 256 Mbit=32 MB disk alanı bit çizelgesi için ayrılır. Kütüklere ilişkin öbek adresleri, dizin öbeği olarak anılan bir öbek içinde toplanır. Kütüğün kılavuz kütük satırı, dizin öbeğinin adresini tutar. Kütüklere erişimde önce dizin öbeği, sonra kütük öbekleri okunur. Dizinli yer atama yönteminin Olumlu yönü: Kütüklere sıradan/rasgele erişimlerde başarılı Diske erişimleri azaltmak için dizin öbeği ana bellekte tutulur. Olumsuz yönü: Dizin öbeklerinden kaynaklı diskte yer kaybı UNIX te, i-node içinde ilk 10 öbek tutulur. 41 42
Disk Ön Bellek Alanlarının Kullanımı Diske yapılan erişimleri azaltmak amacıyla, erişilen kütüklerin bazı öbekleri yastık alanlarında saklanır. Arabirim düzeyinde Disk sürücü üzerinde 8MB, 16MB cache bellek Ana bellek düzeyinde UNIX işletim sisteminde, buffer cache olarak da adlandırılır. Yastık alanında yer sıkıntısı olduğunda FIFO, LRU gibi algoritmalarla seçilen öbekler (gerekirse diske yazıldıktan sonra) yastık alanından çıkarılabilir. Disk Ön Bellek Alanlarının Kullanımı Ön bellek kullanımının en önemli sakıncası veri bütünlüğünün bozulma riskidir. Günleme yapılan kimi kütük öbekleri, ilgili kütük kapatılmış, görev sonlanmış olsa bile, bir süre diske yazılmadan ön bellek alanında kalabilir. UNIX işletim sisteminde, bu amaçla bazı önlemler: sync çağrısı, ön bellekte bulunan günlenmiş öbekleri diske yazdırır. update gibi bir adla anılan özel bir sistem görevi, 30-40 saniye gibi bir sıklıkla sync çağrısını çalıştırır. MS-DOS'ta herhangi bir öbeğe yazma yapılması durumunda bu öbek hemen diske aktarılır. Buna, writethrough-cache adı verilir. Disk erişimlerinin çoğu okuma ise başarımı çok etkilemez. 43 44 Diskte Yedekleme Bir bilgisayar sisteminde saklanan kütüklerin, bozulmalara karşı korunması genelde yedekleme işlemleri ile sağlanır. Yedekleme işlemleri, saklanan verinin miktarına ve önemine göre belirlenen sıklıklarda yapılmalıdır. Teyp yedekleme üniteleri Disk üniteleri Yedeklemenin gereksinimlerine göre farklı coğrafi ortamlarda yedekler saklanabilir. Bankacılık bilgilerinin ortak merkezlerde saklanması Kümeleme (cluster) sistemleri Diskte Yedekleme Striping (RAID0) Mirroring (Aynalama) (RAID1) Yazma/Okuma hızları, Hataya duyarlılık nasıl olur? 45 46 RAID10 Modeli Disk Dizilerinin Kullanımı RAID 5 Modeli Disk Dizilerinin Kullanımı 47 48