İKİNCİL DEPOLAMA YÖNETİMİ 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 Erişim zamanı diskin band genişliğinin iyi kullanılması Read/Write data: 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 Seek (5ms) + Rot. Delay (4ms) + Transfer (0.25ms) Yaklaşık olarak 10ms 100Kbyte/sec Aynı silindirde random bir yer 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 sector Extended partition boot record Boot code 1 2 3 4 Partitiion table Partitions within an extended partition The Windows boot process doesn’t begin when you power on your computer or press the reset button. It begins when you install Windows on your computer. At some point during the execution of the Windows Setup program, the system’s primary hard disk is prepared with code that takes part in the boot process. Before we get into what this code does, let’s look at how and where Windows places the code on a disk. Since the early days of MS-DOS, a standard has existed on x86 systems for the way physical hard disks are divided into volumes. Microsoft operating systems split hard disks into discrete areas known as partitions and use file systems (such as FAT and NTFS) to format each partition into a volume. A hard disk can contain up to four primary partitions. Because this apportioning scheme would limit a disk to four volumes, a special partition type, called an extended partition, further allocates up to four additional partitions within each primary partition. Extended partitions can contain extended partitions, which can contain extended partitions, and so on, making the number of volumes an operating system can place on a disk effectively infinite. Physical disks are addressed in units known as sectors. A hard disk sector on an IBM-compatible PC is typically 512 bytes. Utilities that prepare hard disks for the definition of volumes, including the MS-DOS Fdisk utility or the Windows Setup program, write a sector of data called a Master Boot Record (MBR) to the first sector on a hard disk. The MBR includes a fixed amount of space that contains executable instructions (called boot code) and a table (called a partition table) with four entries that define the locations of the primary partitions on the disk. When an IBM-compatible computer boots, the first code it executes is called the BIOS, which is encoded into the computer’s ROM. The BIOS selects a boot device, reads that device’s MBR into memory, and transfers control to the code in the MBR. The MBRs written by Microsoft partitioning tools, such as the one integrated into Windows Setup and the Disk Management MMC snap-in, go through a similar process of reading and transferring control. First, an MBR’s code scans the primary partition table until it locates a partition containing a flag that signals the partition is bootable. When the MBR finds at least one such flag, it reads the first sector from the flagged partition into memory and transfers control to code within the partition. This type of partition is called a boot partition, and the first sector of such a partition is called a boot sector. The volume defined for the boot partition is called the system volume. 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