İşletim Sistemleri (Operating Systems)
DİSK PLANLAMASI (Disk Scheduling)
Elektromekanik Yapıdaki Sabit Diskler Günümüzde sabit diskler veri aktarımında son derece hızlanmış olsalar da elektromekanik yapıda olduklarından RAM'lara göre yavaştırlar. Bilgisayarlarda ikincil ve kalıcı bellek olarak kullanılırlar. Bir program işletilmeye başladığında, sabit diskten okunarak çok daha hızlı olan RAM belleğe aktarılır. Gereksinim duyulan kısım RAM'a sığmayacak kadar büyükse, bilgisayar sabit diskin bir bölümünü sanal bellek olarak kullanır. Elektromekanik yapıdaki sabit disklerde metal, cam veya plastikten yapılmış, yüzeyi demir oksit ya da başka manyetik özellikteki malzeme ile kaplı diskler üzerine veriler kaydedilir.
Elektromekanik Yapıdaki Sabit Diskler Bir sabit diskte bir veya birden fazla sayıda manyetik kayıt diski bulunur. Manyetik disk ya da diskler 3600, 4200, 5400, 5900, 7200, 10000, 15000 d/d (devir/dakika) gibi hızlarla dönerken disk yüzeyleri üzerinde gezinen kafa veya kafalar okuma-yazma işlemlerini yaparlar.
Elektromekanik Yapıdaki Sabit Diskler
Advanced Format 4K Sector Advanced Format (AF), HDD sector uzunluğunu geleneksel 512 bayt boyutundan daha uzun olacak şekilde arttırarak, biçimlendirme (format) verimliliğini geliştiren yeni bir standarttır. Advanced Format, gereksiz başlıkları azaltıp biçimlendirme verimliliğini arttırarak, hata algılama ve düzeltme algoritmalarıyla kaydedilen verinin güvenirliğini arttırır. Advanced Format standartları, 4096 baytlık (4 KB) bir sector boyutu kullanır. Yani, tek bir sector sekiz adet 512 baytlık geleneksel üniteden oluşur.
Disk Kapasitesi Silindir sayısı= Yüzeylerdeki track sayısı Track kapasitesi = bir track’taki sector sayısı × sector kapasitesi Silindir kapasitesi= yüzeylerin(kafa) sayısı x track kapasitesi Sabit Disk Sürücü Kapasitesi= silindir sayısı x silindir kapasitesi 16383 silindir, 16 yüzey(kafa) ve 63 sektör parametrelerine sahip bir sabit diskin kapasitesi: 16383*16*63*512= 8 455 716 864 bayt. Yaklaşık ~ 8.5 GB.
Diskteki Veri Alışverişi İşletim sisteminin sorumluluklarından biriside donanımın verimli kullanılmasını temin etmektir. Sabit Disk üzerinde çok sayıda okuma/yazma işlemi yapılmaktadır. Bu nedenle okuma/yazma işlemlerinin çok hızlı gerçekleştirilmesi gerekir. Disk için esas olan, hızlı erişim ve bant genişliğidir. Disk hızını belirleyen 3 etken vardır : Arama Süresi (seek time) Rotasyonel Gecikme (rotational latency) Transfer Süresi (transfer time)
Diskteki Veri Alışverişi Disk üzerinden bilgi okumak ve yazmak için, okuma/yazma kafasının gereken iz (track) ve kesim (sector) üzerinde konumlandırılması gerekir. Okuma/yazma kafasının gereken iz (track) üzerinde konumlandırılması için geçen süreye arama zamanı (seek time) denir. Okuma/yazma kafasının gereken kesim (sector) üzerinde konumlandırılması için geçen süreye de rotasyonel gecikme (rotational latency) denir.
Diskteki Veri Alışverişi Arama zamanı ile rotasyonel gecikmenin toplamına ulaşım zamanı (access time) denir. access time = seek time + rotational latency Bu süre, okuma ve yazma işleminin başlaması için gereken zamandır. Verinin diskten okunarak ana belleğe transfer edilinceye kadar geçen süreye de aktarma süresi (transfer time) denir. Sabit disklerde veriler okuma kafasınca okunduktan sonra, sabit diskin içinde yer alan ön belleğe aktarılarak oradan ana sisteme iletilirler. Ön bellek işlemler sırasında zaman kaybını önlemek için kullanılır.
Diskteki Veri Alışverişi Disk üzerinde gerçekleşen bir veri alışverişi sırasında genelde aşağıdaki gecikmeler yaşanır: İlk olarak aygıtın müsait olması beklenir. Daha sonra ise iletişim kanalının haberleşmeyi sağlamak için hazır duruma getirilmesi gerekir. Arama zamanı ve rotasyonel gecikme sonrasında ise veri transferi başlar.
Diskteki Veri Alışverişi Arama zamanı (seek time) : genelde 3 ms'den 12 ms'e kadar (masaüstü sürücüler için 9 ms yaygın) Mil hızına (spindle speed) dayalı Rotasyonal Gecikme (Rotational Latency) 1/(RPM * 60)
Disk Sürücü G/Ç Veriyolu Tipleri G / Ç veriyolu üzerinden bilgisayara bağlı disk sürücü EIDE, ATA, SATA, USB, Fiber Kanal, SCSI, SAS, Firewire dahil olmak üzere G/Ç veriyolu tipleri farklılık arz eder.
Disk G/Ç İsteği Her bir disk G / Ç isteği aşağıdakileri içerir : Erişim Modu (yani okuma veya yazma) Veri aktarımı için disk adresi Bellek adresi Aktarılacak sector sayısı
Disk Çizelgeleme Yöntemleri Diskteki okuma/yazma kafasının, hangi sırada istekleri karşıladığı, diskin performansını büyük ölçüde etkileyen bir faktördür. Multiprogramming sistemlerde, diske aynı anda birçok istek gönderilebilir. Eğer hangi isteğin karşılanacağı rastgele seçilirse, diskin performansı düşecektir. Belli yöntemler kullanılarak diskteki arama zamanını (seek time) azaltmak ve performansı yükseltmek mümkündür. Disk bant genişliği : (aktarılan toplam bayt miktarı) / (servis için ilk istek ile son aktarımın tamamlanması arasındaki toplam süre)
Disk Çizelgeleme Yöntemleri Disk başlığının ileri-geri hareketini sağlayan algoritmalar vardır. Bunlardan bazıları ; İlk Gelen İlk Hizmet (First Come First Served-FCFS) En Kısa Arama Süresi olan Önce (Shortest-Seek-Time-First-SSTF) Tarama (Scan) Dairesel Tarama (Circular-Scan)
İlk Gelen İlk Hizmet (First Come First Served-FCFS) Disk planlamasının en basit şeklidir. Adil bir planlama gibi gözükse de en hızlı servisi sağlamaz. İlk Gelen İlk Hizmet yöntemi, istek kuyruğundaki isteklerin, kuyruğa varış sırasına göre işlem gördüğü yöntemdir. Kuyruğa ilk ulaşan istek diğerlerinden daha önce işlem görecektir.
İlk Gelen İlk Hizmet (First Come First Served-FCFS) Disk okuma yazma kafasının başlangıç konumu 53. track. Disk kuyruğu: 98,183,37,122,14,124,71,60 Diskin toplam track sayısı 200 Total Head Movement Computation: THM = (183 - 53) + (183-37) + (122-37) + (122-14) +(124-14) + (124-71) + (71-60) = 130 + 146 + 85 + 108 + 110 + 53 + 11 THM = 643 tracks Burada tüm istekleri karşılamak için 643 track geçilecektir. seek time : 5 ms Total Seek Time = THM * Seek time = 643 * 5 Total Seek Time = 3215 ms
İlk Gelen İlk Hizmet (First Come First Served-FCFS) Disk okuma yazma kafasının başlangıç konumu 50. track Disk kuyruğu: 95, 180, 34, 119, 11, 123, 62, 64 Diskin toplam track sayısı 200 (0-199) Total Head Movement Computation: (THM) = (180 - 50) + (180-34) + (119-34) + (119-11) + (123-11) + (123-62) + (64-62) = 130 + 146 + 85 + 108 + 112 + 61 + 2 (THM) = 644 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 644 * 5 Total Seek Time = 3220 ms
En Kısa Arama Süresi olan Önce (Shortest-Seek-Time-First-SSTF) Bu algoritmada okuma/yazma kafasının şimdiki durumuna göre en kısa arama süresi olan işlem seçilir. Arama süresi okuma/yazma kafasının izleyeceği (tarayacağı) track sayısı ile doğru orantılı olduğundan En Kısa Arama Süresi olan Önce algoritması disk okuma/yazma kafasının ilk durumuna en yakın olan track’ı ilk işlem için seçecektir. Algoritmanın yetersiz yönlerinden birisi her zaman kuyruğa disk okuma/yazma kafasının o anki durumuna daha yakın olan track sunulabilir. Bunun sonucunda disk okuma/yazma kafasına daha uzakta olan track’ların işlenmesi ertelenebilir.
En Kısa Arama Süresi olan Önce (Shortest-Seek-Time-First-SSTF) Disk okuma yazma kafasının başlangıç konumu 53. track. disk kuyruğu: 98,183,37,122,14,124,71,60 Diskin toplam track sayısı 200 Total Head Movement Computation: (THM) = (183-53) + (183-14) = 130 + 169 (THM) = 299 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 299 * 5 Total Seek Time = 1495 ms
En Kısa Arama Süresi olan Önce (Shortest-Seek-Time-First-SSTF) Disk okuma yazma kafasının başlangıç konumu 50. track Disk kuyruğu: 95, 180, 34, 119, 11, 123, 62, 64 Diskin toplam track sayısı 200 (0-199) Total Head Movement Computation: (THM) = (64-50) + (64-11) + (180-11) = 14 + 53 + 169 (THM) = 236 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 236 * 5 Total Seek Time = 1180 ms
Tarama (SCAN) Algoritması Bu yöntemde okuma yazma kafası bir yöne doğru hareket ettikten sonra, o yöndeki bütün istekleri karşılamadan diğer tarafa yönelmez. Diskin sonuna ulaşıldığında da disk kolu yön değiştirir ve bu yöndeki talepler sırasıyla karşılanır. Bu yönteme asansör (elevator) algoritması da denir.
Tarama (SCAN) Algoritması Disk okuma yazma kafasının başlangıç konumu 53. track. disk kuyruğu: 98,183,37,122,14,124,71,60 Diskin toplam track sayısı 200 Total Head Movement Computation: (THM) = (53-0) + (200-0) = 53 + 200 (THM) = 253 seek time : 5 ms Total Seek Time = THM * Seek time = 253 * 5 Total Seek Time = 1265 ms
Tarama (SCAN) Algoritması Disk okuma yazma kafasının başlangıç konumu 50. track Disk kuyruğu: 95, 180, 34, 119, 11, 123, 62, 64 Diskin toplam track sayısı 200 (0-199) Total Head Movement Computation: (THM) = (50-0) + (180-0) = 50 + 180 (THM) = 230 seek time : 5 ms Total Seek Time = THM * Seek time = 230 * 5 Total Seek Time = 1150 ms
Dairesel Tarama (C-SCAN) Algoritması Tarama yöntemi (SCAN) ile dairesel tarama (C-SCAN) arasındaki tek fark, bu yöntemde okuma/yazma kafasının sadece tek yönde hareket etmesine izin verilmesidir. Ancak disk sonuca ulaştığı zaman geri dönüş yolunda isteklere bakmaksızın derhal en başa döner ve taramayı devam ettirir. Bu yöntemle istek kuyruğuna yeni gelen isteklerin bekleme süreleri azalmıştır.
Dairesel Tarama (C-SCAN) Algoritması Disk okuma yazma kafasının başlangıç konumu 53. track. disk kuyruğu: 98,183,37,122,14,124,71,60 Diskin toplam track sayısı 200 Total Head Movement Computation: (THM) = (200-53) + (37-0) + α = 147 + 37 + 20 (THM) = 204 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 204 * 5 Total Seek Time = 1020 ms
Dairesel Tarama (C-SCAN) Algoritması Disk okuma yazma kafasının başlangıç konumu 50. track Disk kuyruğu: 95, 180, 34, 119, 11, 123, 62, 64 Diskin toplam track sayısı 200 (0-199) Total Head Movement Computation: (THM) = (50-0) + (199-62) + α = 50 + 137 + 20 (THM) = 207 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 187 * 5 Total Seek Time = 935 ms
LOOK ve C-LOOK Algoritması SCAN ve C-SCAN planlamaları, disk kolunu tüm disk boyunca hareket ettirir. SCAN algoritmasından farklı olarak LOOK ve C-LOOK algoritmalarında disk başlığı diskin sonuna kadar değil erişilmesi gereken son track’a kadar hareket eder.
LOOK ve C-LOOK Algoritması LOOK algoritmasında disk kolu yolu üzerindeki son talep ne ise oraya kadar gider ve derhal yön değiştirir fakat diskin en başına gitmez, bu yol üzerindeki ilk talebe konumlanır. C-LOOK algoritmasında, okuma yazma kafası başlama konumundan en son track yönünde hareket eder. En son track’a yakın en son işlem gerçekleştirildikten sonra, ilk track’a en yakın işlemden başlayarak başlama konumundan önceki işlemleri yapar.
LOOK Algoritması Disk okuma yazma kafasının başlangıç konumu 53. track. disk kuyruğu: 98,183,37,122,14,124,71,60 Diskin toplam track sayısı 200 Total Head Movement Computation: (THM) = (183-53) + (183-14) = 130 + 169 (THM) = 299 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 299 * 5 Total Seek Time = 1495 ms
LOOK Algoritması Disk okuma yazma kafasının başlangıç konumu 50. track Disk kuyruğu: 95, 180, 34, 119, 11, 123, 62, 64 Diskin toplam track sayısı 200 (0-199) Total Head Movement Computation: (THM) = (50-11) + (180-11) = 39 + 169 (THM) = 208 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 208 * 5 Total Seek Time = 1040 ms
C-LOOK Algoritması Disk okuma yazma kafasının başlangıç konumu 53. track. disk kuyruğu: 98,183,37,122,14,124,71,60 Diskin toplam track sayısı 200 Total Head Movement Computation: (THM) = (200-53) + (37-14) + α = 147 + 23+ 20 (THM) = 190 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 190 * 5 Total Seek Time = 950 ms
C-LOOK Algoritması Total Head Movement Computation: Disk okuma yazma kafasının başlangıç konumu 50. track Disk kuyruğu: 95, 180, 34, 119, 11, 123, 62, 64 Diskin toplam track sayısı 200 (0-199) Total Head Movement Computation: (THM) = (50-11) + (180-62) + α = 39 + 118 + 20 (THM) = 177 tracks seek time : 5 ms Total Seek Time = THM * Seek time = 157 * 5ms Total Seek Time = 785 ms
ÖRNEK Bir diskteki okuma/yazma kafasının track 40’tan track 41’e doğru hareket ettiğini ve istek kuyruğundaki ziyaret edilmesi gereken track numaralarının da aşağıdaki gibi olduğunu varsayınız: 25, 70, 35, 5, 20 Farklı çizelgeleme yöntemlerini kullanarak track’ların hangi sırayla işlem göreceğini ve ortalama arama uzunluğunu hesaplayınız. İlk Gelen İlk Hizmet (First Come First Served-FCFS) En Kısa Arama Süresi olan Önce (Shortest-Seek-Time-First-SSTF) Tarama (Scan) Dairesel Tarama (Circular-Scan)
İlk Gelen İlk Hizmet (First Come First Served-FCFS) Okuma/yazma kafası iz 41 üzerinde konumlandırılmıştır. İstek kuyruğu: 25, 70, 35, 5, 20 Bir sonraki track Geçilen track sayısı 25 16 70 45 35 5 30 20 15 Ortalama 28.2
En Kısa Arama Süresi olan Önce (Shortest-Seek-Time-First-SSTF) Okuma/yazma kafası iz 41 üzerinde konumlandırılmıştır. İstek kuyruğu: 25, 70, 35, 5, 20 Bir sonraki track Geçilen track sayısı 35 6 25 10 20 5 15 70 65 Ortalama 20.2
Tarama (Scan) Okuma/yazma kafası iz 41 üzerinde konumlandırılmıştır. İstek kuyruğu: 25, 70, 35, 5, 20 Bir sonraki track Geçilen track sayısı 70 29 35 25 10 20 5 15 Ortalama 18.8
Dairesel Tarama (Circular-Scan) Okuma/yazma kafası iz 41 üzerinde konumlandırılmıştır. İstek kuyruğu: 25, 70, 35, 5, 20 Bir sonraki track Geçilen track sayısı 70 29 5 65 20 15 25 35 10 Ortalama 24.8
Redundant Array of Inexpensive Disks-RAID Disk güvenliğinin ve performansının arttırmak için ortaya çıkartılmış disk organizasyon biçimleridir. Temel fikir birden fazla diski bilgisayara eklemek ve bu disklerin tek bir disk gibi davranmasını sağlamaktır. Veriler RAID disklerde paylaştırılırlar bu yüzden paralel işlem gerçekleştirmek mümkündür. Verilerin diskler üzerinde dağılımlarında farklı şemalar bulunur.
Redundant Array of Inexpensive Disks-RAID Çoklu sayıdaki diskler üzerine veri dağıtılması işi bu iş için tasarlanmış Donanım veya Yazılım ile gerçekleştirilir. RAID’in donanım uygulaması en azından özel amaçlı üretilmiş bir RAID denetim birimine ihtiyaç duyar. Bunlara ilaveten kısmen donanım kısmen de yazılım tabanına sahip çözümler olan hibrid RAID’ler de mevcuttur.
RAID-0 (Striped set without parity) Buradaki amaç, veriye erişim süresini kısaltmaktır. Sanal disk her birinde k adet sektör bulunan şeritlere (strip) bölünür. (0, k- 1) sektörleri Strip0 da, (k,2k-1)sektörleri Strip1 de,... bulunur. Veri striplere bölünerek farklı striplere yazılır. Veri aynı anda farklı disklere yazılır ve okunur. Veri okuma ve yazma hızı yüksektir. Disklerden bir tanesi arızalanırsa, veriler kaybolur. Minimum disk adedi : 2
RAID-0 (Striped set without parity)
RAID-0 (Striped set without parity) Şeritleme yoluyla Geliştirilmiş Performans : Mekanik disk sürücüleri yavaştır. (Yaklaşık 8 ms arama zamanı + rotasyonel gecikme) Okuma ve yazma işlemleri hızlanır; yazılmak üzere veri bölünür ve birden çok disk şeridine yazılır. Bir diske x bayt yazma biraz zaman alabilir. n tane disk boyunca veri şeritlenirse, Yalnızca her diske x / n bayt yazma yeterlidir. Okuma / yazma zamanı, n faktörü kadar azaltılabilir. Şeritleme farklı ölçeklerde gerçekleşebilir. her bir dosyanın bir baytını farklı bir diske yazma; her dosyanın bir bloğunu farklı bir diske yazma; vb.
RAID-1 (Disk mirroring) RAID 1'de aynı veri birçok diske yazılır. Disk aynalama (mirroring) olarak da bilinir. Her ne kadar birçok uygulama 2 disklik diziler oluştursa da, 3 veya daha fazla diskli diziler de kullanılabilir. Disklerden birisine bir şey olması durumunda diğerinde bulunan kopya sayesinde veri kurtulabilir. Bu yöntem hız açısından bir avantaj sağlamaz. Dizideki en az bir disk düzgün çalıştığı sürece, her türlü hata ve aksaklığa karşı koruma vardır ve dizi normal çalışmasını sürdürür. Minimum disk adedi : 2
RAID-1 (Disk mirroring)
RAID 5 (Striping with Parity) Hem hızın hem güvenliğin beraber oluşturulduğu bir yapıdır. Parity ve veri bilgisi tüm disklere parçalara ayrılarak disklere kaydedilir. Bir disk arızalandığında diğer diskler onun görevini paylaşarak çalışmaya devam eder, bu nedenle en az 3 adet disk ile oluşturulur. Bozulan tek bir diskin güvenliği esastır ve toplam kapasite bir disk eksik olarak hesaplanır.
RAID 5 (Striping with Parity)
RAID 6 Raid 6 enaz 4 disk ile yapılır. Bu yapıda Raid 5 gibi dağıtılmış pariteler kullanır. Raid 5’ten farkı ise iki ayrı parite diski kullanması ve 2 diski tolere edebilmesindir. Okuma hızı oldukça iyidir. Ama yazma hızı çift parite tutasından dolayı Raid 5’e göre kötüdür.
RAID 6
RAID 10
RAID 50
RAID 60