BÖLÜM 11 İKİNCİL DEPOLAMA YÖNETİMİ İçerik Disk Yapısı Diske Yerleşim Disk Düzenleme Disk Yönetimi Boş Alan Yönetimi İşletim Sistemleri Özellikleri ... Disk Düzenleme Disk düzenleme: Read/Write data: Erişim zamanı diskin band genişliğinin iyi kullanılması Arama zamanı: Disk kolunun istenen sektörü içeren silindire hareket etmesi için gereken zaman Döngüsel gecikme zamanı: Diskin okuma başlığının istenen sektör üzerine gelene kadar gereken dönme zamanı. Transfer zamanı: okuma-yazma kafası altındaki bit bloklarının transfer süresi Diskin band genişliği, Son transferin tamamlanması ile ilk isteğin servis edilmesi arasında geçen toplam zaman ile bölünen, toplam transfer edilen byte sayısıdır. Erişim zamanı ve band genişliğini, I/O isteklerini iyi şekilde servis edilerek düzenlenebilir. ... Disk Gecikmesi=Kuyrukta bekleme zamanı+Kontrolör zamanı+Arama zamanı+Dönme zamanı+transfer zamanı Disk üzerinde random bir alan Aynı silindirde random bir yer Seek (5ms) + Rot. Delay (4ms) + Transfer (0.25ms) Yaklaşık olarak 10ms 100Kbyte/sec Rot. Delay (4ms) + Transfer (0.25ms) Yaklaşık olarak 5ms 200Kbyte/sec Aynı track teki bir sonraki sektör Transfer (0.25ms): 4 MByte/sec .. Bir işlem I/O işlemi ya da disk işlemi gerektiğinde sistem çağrısı yapılır. Sistem çağrısı şu bilgileri içerir: operasyon bir giriş mi çıkış mıdır Transfer edilecek disk adresi nedir Transfer edilecek bellek adresi nedir Transfer edilecek byte sayısı kaçtır Disk Yapısı Diskteki mantıksal blok numarası fiziksel adreslere çevrilmelidir. Fiziksel adres silindir numarası, silindirdeki(cylinder) iz (track) numarası ve izdeki sektör(sector) numarasından oluşmaktadır. Tipik olarak: Her yüzeyde 500-20.000 arası iz Her izde 32-800 sektör Disk Yapısı Disk sürücüler, tek boyutlu mantıksal blok dizilerine adreslenmişlerdir. Bu mantıksal bloklar transferin en küçük birimleridir. Tek boyutlu Mantıksal blok dizisi, diskin sektörlerine sıra ile eşleştirilir. Sector 0, en dıştaki silindirin birinci iz’inin ilk sektörüdür. Bu ize eşleştirme işinden sonra bu silindirdeki diğer izlere ve daha sonra en dıştakinden en içteki silindire doğru eşleştirme işi devam eder. Disk Düzenleme Algoritmaları Algoritmalar değerlendirilirken şunlar varsayılacaktır: Disk 0-199 silindire sahip Bekleme kuyruğunun şu şekilde olduğu düşünülecektir 98, 183, 37, 122, 14, 124, 65, 67 Okuma Yazma Kafası: 53. silindirde FCFS toplam kafa hareketi: 640 silindir SSTF Mantığı kafanın şu anki yerini değiştirmeden önce ona yakın tüm istekleri öncelikle karşılamak daha sonra diğer tarafa yönelmektir. SSTF kafanın şu anki pozisyonuna en yakın yeri biri sonraki adım olarak seçer. Bazı disk request’ lerin gecikmesine sebep olur. Alg. Bu işletimde 208 kafa hareketi gerektirir. SSTF SCAN Scan algoritmasında driver kuyruğun yapısını inceler. Okuma / yazma kafası öncelikle diskin bir tarafına doğru ilerler daha sonra tam aksi yönde turunu tamamlar. İstekleri bu yönde değerlendirir. Asansör mantığında işliyor diyebiliriz. Alg. Bu işletimde 236 kafa hareketi gerektirir SCAN C-SCAN Circular SCAN ‘den gelmektedir. Scan ‘in bir varyantıdır. Diskin fiziksel yapısını dikkate alarak işini yapar. Öncelikle bir yöne doğru ilerler. Daha sonra geri dönüş yolunda isteklere bakmaksızın tekrar başa konumlanır. Tekrar sona doğru ilerler. C-SCAN C-LOOK SCAN ve C-SCAN de o yöndeki isteklere bakılmaksızın sabit bir yöne doğru ilerlenmekte idi. LOOK metodunda ise farklı olarak bir yöne gitmeden önce o yöndeki isteklerin yoğunluğu da değerlendirilir. Mantığı: Look for a request before moving in that direction O yöne ilerlemeden önce o yöndeki isteklere bakar. Hangi yönde istek fazla ise o yöne yönelir. C-LOOK Algoritma Seçmek SSTF genelde uygulanan algoritmadır. SCAN ve C-SCAN yüklü diski olan işletim sistemlerinde daha iyi işlemektedir. Performans gelen istek tipi ve sayısına göre değişir. Disk için gelen istekler dosya yerleşiminden etkilenebilir. Disk düzenleme algoritması bir işletim sisteminin ayrı bir modülü olarak yazılmalıdır. Ki gerektiğinde başka bir algoritma ile rahat değiştirilebilsin. SSTF ya da LOOK default algoritma olarak iyi bir seçim olabilirler. Disk Yönetimi Low-level formatting ve High-level formatting Low-level formatting (fiziksel formatlama): Yeni bir manyetik disk, boş bir yüzeydir. Disk veriyi depolayabilir olmadan önce, disk denetleyicinin okuyup yazabileceği sektörlere bölünmüş olmalıdır. Fiziksel formatlama, her sektör için diski özel bir veri yapısı ile doldurur. Bir sektör için veri yapısı, tipik olarak bir başlık ve kuyruk alanı içerir. Sektör boyutları 256-512-1024 olarak formatlama işlemleri yapılır. Low Level Formatting ... Başlık ve kuyruk bilgisi: sektör numarası, hata kodlama bitleri (ECC) gibi disk denetleyicinin ihtiyaç duyacağı bilgileri içerir. Denetleyici, normal I/O zamanında sektöre yazarken, ECC ler güncellenir. Sektör okunduğunda ECC de okunur ve yeniden hesaplanır. Disk ve disk kontrolör arasındaki bit aktarımında, eğer ECC nin daha önceki değeri ile yeni hesaplanan ve saklanan değeri farklı ise sektör zarar görmüş demektir ve bad sektör olarak adlandırılır. ECC, bir hata düzeltme kodudur. Denetleyici hangi bitlerin bozulduğunu anlayabilir ve sonrasında doğru olan değerlerini hesaplayabilir. Denetleyici, bir sektör okunduğunda yada yazıldığında ECC işlemini otomatik olarak yapar. ... Dosya sistemini disk üzerinde saklayabilmek için, işletim sistemi hala bir takım ek veri yapılarına ihtiyaç duyar. Bu iki aşamada gerçekleşen bir işlemdir. İlk adım, diski silindir gruplarına ayırmaya yarayacak olan partitioning işlemidir. İşletim sistemi, her partitiona, ayrı bir diskmiş gibi davranır. Örneğin bir partition işletim sisteminin işletilebilir kodlarını içerirken diğeri kullanıcı dosyalarını içerebilir. İkinci aşama, mantıksal formatlama (yada dosya sistemi yaratma) işlemidir. Bu adımda, işletim sistemi, dosya sistemi veri yapılarını disk üzerine depolarlar. Bu veri yapıları, boş ve yerleşim yapılmış alan bilgileri (FAT ve inode) ve mevcut boş dizin bilgilerini tutarlar. Boot Blok Bir bilgisayar için run işlemini başlatmak- örneğin güç verildiğinde yada restart edildiğinde- bir başlangıç programı başlatmaya ihtiyaç duyar. Boot başlangıç programı basit olma eğilimdedir. Bir sistemin tüm özelliklerini CPU registerlarından aygıt denetleyicilere ve ana bellek içeriklerine başlangıç değeri verirler. Bu işi yapabilmek için, boot başlangıç programı, işletim sisteminin çekirdeğini disk üzerinde bulur, belleğe yükler ve işletim sistemini başlatmak için başlangıç adresine atlar. Boot Blok Birçok bilgisayar için, boot başlangıç programı Rom üzerinde yer alır. Rom readonly olduğunda bilgisayar virüsleri tarafından zarar göremez. Buradaki problem ise şudur. Boot başlangıç programını değiştirmeye çalışmak demek, ROM belleğin donanım çiplerini değiştirmek demektir. Bu nedenle çoğu sistem çok küçük bir boot başlangıç programını rom üzerinde saklar. Bu programın görevi boot başlangıç programının geri kalan kısmını diskin ilgili yerinden getirebilmektir. Bu şekilde program kolayca değiştirilebilir. Boot bölümü içeren disk, boot disk yada sistem disk olarak adlandırılır. Rom daki boot kodları, disk denetleyiciye boot bloklarını belleğe okumasını söyler ve sonra bu kodu işletmeye başlar. Boot Process Basic Disk Partitioning Bir disk Master Boot Record (MBR) diye adlandırılan bir sektöre sahiptir. Bu ilk sektördür. partition table ile bölümleme bilgisini içerir. MBR Boot code Boot sector 1 2 3 4 Partitiion table Partitions within an extended partition Extended partition boot record Boot partition Partition 1 Partition 2 Partition 3 (extended) Partition 4 Bad Bloklar Disk ve denetleyicinin kullanımdaki durumuna göre bloklar değişik şekillerde tutulabilirler. Basit disklerde, örneğin IDE denetleyiciler gibi, bad bloklar manuel olarak tutulur. Eğer format bir bad sektör bulursa, Fat girişine özel değerler yazar ve rutinleri bir dahaki işletimde bu blokları kullanmamak üzere çalıştırır. Eğer bloklar normal işletim sırasında bad blok olurlarsa, özel bir program(chkdsk) bad blokların aranması ve kilitlemesi için mauel olarak çalıştırılabilmelidir. Bu bloklardaki veriler kaybedilirler. ... Daha karmaşık yapılı SCSI disklerin kullanıldığı PC ler, serverlar bad blokların bulunması konusunda daha akıllı sistemlerdir. Denetleyici, disk üzerinde bir bad blok listesini düzenler. Liste, fabrikasyonda low-level format sırasında ilk değerlerini alır ve diskin işletmi boyunca güncel değerlerini almaya devam eder. Denetleyici, her bad sektörü mantıksalolarak bir spare sektör ile değiştirmeyi söyleyebilmelidir. Bu şema sector sparing ya da forwarding olarak bilinir. ... Tipik bir bad sektör işlemi şu şekilde olur: İş. Sist, mantıksal blok 87 yi okumaya çalışır. Denetleyici, ECC yi hesaplar ve sektörün bad sektör olduğunu görür. Bunu işletim sistemine bildirir. Sistemin tekrar boot edildiği bir sonraki zamanda, Özel bir komut, SCSI kontrolöre, bad sektör ile spare ile değiştirmesi gerektiğini söyler. Bundan sonra, sistem 87. bloğu tekrar çağırırsa, denetleyici tarafından değiştirilen sektörün adresine yönlendirme yapılır. Bad Block Swap Alanı Yönetimi Disk, bellekten daha yavaş erişim gerçekleştirdiğinden, swap alanı kullanmak sistemin performansını oldukça artırmaktadır. Swap alanı dizaynının ana hedefi, sanal bellek sistemi için en iyi throughput’u sağlamaktır. Linux Sistemlerde Swapping Data Structures Genel uygulama: swap alanını bölüm bilgisi olarak düzenlemek Slot size=page size (örn 4KB) Page boş slotlardan birine yazılır